eli-video-interview 1.2.3-5.alpha.3 → 1.2.3-5.alpha.4

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.
Files changed (38) hide show
  1. package/README.md +1 -0
  2. package/esm/modules/ai-question/components/QuestionPreview/index.js +5 -5
  3. package/esm/modules/ai-question/components/QuestionTemplate/interface.d.ts +1 -0
  4. package/esm/modules/ai-question/components/QuestionUpdate/Form.js +29 -1
  5. package/esm/modules/ai-question/components/QuestionUpdate/const.js +1 -0
  6. package/esm/modules/ai-question/components/QuestionUpdate/index.js +10 -4
  7. package/esm/modules/ai-question/components/QuestionUpdate/interface.d.ts +2 -0
  8. package/esm/modules/ai-template/Root.js +32 -10
  9. package/esm/modules/ai-template/components/CapabilityModel/index.js +1 -1
  10. package/esm/modules/ai-template/components/QuestionList/Item.d.ts +2 -2
  11. package/esm/modules/ai-template/components/QuestionList/Item.js +28 -7
  12. package/esm/modules/ai-template/components/QuestionList/index.d.ts +2 -1
  13. package/esm/modules/ai-template/components/QuestionList/index.js +15 -4
  14. package/esm/modules/ai-template/components/QuestionList/interface.d.ts +6 -1
  15. package/esm/modules/ai-template/components/TemplateList/index.js +4 -4
  16. package/esm/modules/ai-template/index.js +2 -2
  17. package/esm/modules/ai-template/interface.d.ts +2 -0
  18. package/esm/store/ai-template/global-store.d.ts +3 -0
  19. package/esm/store/ai-template/global-store.js +3 -3
  20. package/lib/modules/ai-question/components/QuestionPreview/index.js +5 -5
  21. package/lib/modules/ai-question/components/QuestionTemplate/interface.d.ts +1 -0
  22. package/lib/modules/ai-question/components/QuestionUpdate/Form.js +29 -1
  23. package/lib/modules/ai-question/components/QuestionUpdate/const.js +1 -0
  24. package/lib/modules/ai-question/components/QuestionUpdate/index.js +10 -4
  25. package/lib/modules/ai-question/components/QuestionUpdate/interface.d.ts +2 -0
  26. package/lib/modules/ai-template/Root.js +32 -10
  27. package/lib/modules/ai-template/components/CapabilityModel/index.js +1 -1
  28. package/lib/modules/ai-template/components/QuestionList/Item.d.ts +2 -2
  29. package/lib/modules/ai-template/components/QuestionList/Item.js +27 -6
  30. package/lib/modules/ai-template/components/QuestionList/index.d.ts +2 -1
  31. package/lib/modules/ai-template/components/QuestionList/index.js +15 -4
  32. package/lib/modules/ai-template/components/QuestionList/interface.d.ts +6 -1
  33. package/lib/modules/ai-template/components/TemplateList/index.js +4 -4
  34. package/lib/modules/ai-template/index.js +2 -2
  35. package/lib/modules/ai-template/interface.d.ts +2 -0
  36. package/lib/store/ai-template/global-store.d.ts +3 -0
  37. package/lib/store/ai-template/global-store.js +3 -3
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -110,6 +110,7 @@ return (
110
110
  | desc | 题目描述 | string |
111
111
  | prepareTime | 准备时长 | number |
112
112
  | duration | 回答时长 | number |
113
+ | minResponseDuration | 最少回答时长 | number |
113
114
  | category | 标签信息 | string[] |
114
115
  | [broadcastType](#题目播报类型) | 题目播报类型 | number |
115
116
  | [aiSwitch](#题目是否开启ai分析) | 题目是否开启AI分析 | number |
@@ -19,13 +19,13 @@ import { Box, Typography } from 'fbm-ui';
19
19
  import { useEffect, useState } from 'react';
20
20
  var QuestionPreview = function () {
21
21
  var _a = useQuestionPreviewStore(), visible = _a.visible, previewItem = _a.previewItem;
22
- var _b = previewItem || {}, _c = _b.name, name = _c === void 0 ? '' : _c, _d = _b.type, type = _d === void 0 ? 1 : _d, _e = _b.broadcastType, broadcastType = _e === void 0 ? 1 : _e, _f = _b.desc, desc = _f === void 0 ? '' : _f, _g = _b.prepareTime, prepareTime = _g === void 0 ? 3 : _g, _h = _b.duration, duration = _h === void 0 ? 30 : _h, extra = _b.extra;
23
- var _j = useState(), values = _j[0], setValues = _j[1];
24
- var _k = useState('none'), display = _k[0], setDisplay = _k[1];
22
+ var _b = previewItem || {}, _c = _b.name, name = _c === void 0 ? '' : _c, _d = _b.type, type = _d === void 0 ? 1 : _d, _e = _b.broadcastType, broadcastType = _e === void 0 ? 1 : _e, _f = _b.desc, desc = _f === void 0 ? '' : _f, _g = _b.prepareTime, prepareTime = _g === void 0 ? 3 : _g, _h = _b.minResponseDuration, minResponseDuration = _h === void 0 ? 3 : _h, _j = _b.duration, duration = _j === void 0 ? 30 : _j, extra = _b.extra;
23
+ var _k = useState(), values = _k[0], setValues = _k[1];
24
+ var _l = useState('none'), display = _l[0], setDisplay = _l[1];
25
25
  useEffect(function () {
26
- setValues({ name: name, broadcastType: broadcastType, desc: desc, prepareTime: prepareTime, duration: duration, questions: [] });
26
+ setValues({ name: name, broadcastType: broadcastType, desc: desc, prepareTime: prepareTime, duration: duration, minResponseDuration: minResponseDuration, questions: [] });
27
27
  setDisplay(visible ? 'block' : 'none');
28
- }, [name, broadcastType, desc, prepareTime, duration, visible]);
28
+ }, [name, broadcastType, desc, prepareTime, duration, visible, minResponseDuration]);
29
29
  return (_jsx(PreviewRoot, __assign({ style: { display: display } }, { children: (extra === null || extra === void 0 ? void 0 : extra.icon) ? (_jsx("img", { src: extra === null || extra === void 0 ? void 0 : extra.icon, alt: "", style: { width: 250 } })) : (_jsxs(Box, __assign({ width: 500 }, { children: [_jsxs(Typography, __assign({ variant: "h5", textAlign: "center", mb: 3 }, { children: [QUESTION_TYPE_MAPPING_LABEL[type], "\uFF08\u9884\u89C8\uFF09"] })), values && _jsx(Form, { preview: true, aiShowType: ADD_QUESTION_TYPE.FREE, initialValues: values, values: values })] }))) })));
30
30
  };
31
31
  export default QuestionPreview;
@@ -24,6 +24,7 @@ export interface AiEvaluationList {
24
24
  duration: number;
25
25
  prepareTime: number;
26
26
  questions: Question[];
27
+ minResponseDuration: number;
27
28
  extra: AiEvaluationListExtra;
28
29
  broadcastType: number;
29
30
  aiSwitch: number;
@@ -88,6 +88,22 @@ var QuestionForm = forwardRef(function (props, ref) {
88
88
  var handleCategoryChange = function (_, value) {
89
89
  onCategoryChange === null || onCategoryChange === void 0 ? void 0 : onCategoryChange(value);
90
90
  };
91
+ var handleMinResponseDurationChange = function (e) {
92
+ var minResponseDurationValue = e.target.value;
93
+ if (minResponseDurationValue && minResponseDurationValue.indexOf('-') > -1) {
94
+ minResponseDurationValue = minResponseDurationValue.replaceAll('-', '');
95
+ }
96
+ if (minResponseDurationValue && minResponseDurationValue.indexOf('.') > -1) {
97
+ minResponseDurationValue = minResponseDurationValue.split('.')[0];
98
+ }
99
+ if (/^[1-9]\d*$/.test(minResponseDurationValue)) {
100
+ minResponseDurationValue = Number(minResponseDurationValue);
101
+ }
102
+ else {
103
+ minResponseDurationValue = '';
104
+ }
105
+ form.setValues(__assign(__assign({}, form.values), { minResponseDuration: minResponseDurationValue }));
106
+ };
91
107
  useImperativeHandle(ref, function () { return ({
92
108
  handleValues: function () { return form.values; },
93
109
  handleSubmit: function () { return form.handleSubmit(); },
@@ -128,7 +144,19 @@ var QuestionForm = forwardRef(function (props, ref) {
128
144
  multiline: true,
129
145
  placeholder: '朗读内容(候选人将根据此内容进行朗读)',
130
146
  sx: { padding: 0 },
131
- } })), _jsxs(Box, __assign({ display: "flex" }, { children: [_jsx(FormItem, __assign({ sx: { height: 64, flex: '1 0', mr: 1 }, required: true, disabled: preview, name: "prepareTime", label: "\u51C6\u5907\u65F6\u957F" }, { children: _jsx(Select, { options: prepareTimeOptions }) })), _jsx(FormItem, __assign({ sx: { height: 64, flex: '1 0' }, required: true, disabled: preview, name: "duration", label: "\u56DE\u7B54\u65F6\u957F" }, { children: _jsx(Select, { options: durationOptions }) }))] }))] })), !preview && _jsx(AiAnalysis, {})] }));
147
+ } })), _jsxs(Box, __assign({ display: "flex" }, { children: [_jsx(FormItem, __assign({ sx: { height: 64, flex: '1 0', mr: 2 }, required: true, disabled: preview, name: "prepareTime", label: "\u51C6\u5907\u65F6\u957F" }, { children: _jsx(Select, { options: prepareTimeOptions }) })), _jsx(FormItem, __assign({ sx: { height: 64, flex: '1 0' }, required: true, disabled: preview, name: "duration", label: "\u56DE\u7B54\u65F6\u957F" }, { children: _jsx(Select, { options: durationOptions }) })), _jsx(FormItem, { sx: { height: 64, flex: '1 0', ml: 2 }, name: "minResponseDuration", label: "\u6700\u5C11\u56DE\u7B54\u65F6\u957F", type: "number",
148
+ // rules={[
149
+ // e => {
150
+ // if (!/^[1-9]\d*$/.test(e.value)) {
151
+ // return '输入不正确';
152
+ // }
153
+ // },
154
+ // ]}
155
+ InputProps: {
156
+ placeholder: '最少回答时长',
157
+ sx: { padding: 0, pr: 1 },
158
+ endAdornment: 's',
159
+ }, onChange: handleMinResponseDurationChange })] }))] })), !preview && _jsx(AiAnalysis, {})] }));
132
160
  });
133
161
  QuestionForm.displayName = 'QuestionForm';
134
162
  export default memo(QuestionForm);
@@ -17,6 +17,7 @@ export var defaultQuestionParams = {
17
17
  language: undefined,
18
18
  name: '',
19
19
  prepareTime: 3,
20
+ minResponseDuration: 3,
20
21
  type: 1,
21
22
  videoBroadcast: {
22
23
  videoRetry: 2,
@@ -89,6 +89,7 @@ var QuestionUpdate = function () {
89
89
  readText: (_a = item === null || item === void 0 ? void 0 : item.extra) === null || _a === void 0 ? void 0 : _a.readText,
90
90
  prepareTime: item === null || item === void 0 ? void 0 : item.prepareTime,
91
91
  duration: item === null || item === void 0 ? void 0 : item.duration,
92
+ minResponseDuration: item === null || item === void 0 ? void 0 : item.minResponseDuration,
92
93
  category: (item === null || item === void 0 ? void 0 : item.category) ? { label: (item === null || item === void 0 ? void 0 : item.category[0]) || '', value: (item === null || item === void 0 ? void 0 : item.category[0]) || '' } : { label: '', value: '' },
93
94
  };
94
95
  var CustomHeader = function () {
@@ -187,12 +188,12 @@ var QuestionUpdate = function () {
187
188
  return [2 /*return*/, (_a = formRef === null || formRef === void 0 ? void 0 : formRef.current) === null || _a === void 0 ? void 0 : _a.handleSubmit()];
188
189
  }); }); };
189
190
  var handleSubmit = useCallback(function (values) { return __awaiter(void 0, void 0, void 0, function () {
190
- var _a, errorIndexes, params;
191
- return __generator(this, function (_b) {
192
- switch (_b.label) {
191
+ var _a, errorIndexes, params, _b, minResponseDuration, duration;
192
+ return __generator(this, function (_c) {
193
+ switch (_c.label) {
193
194
  case 0: return [4 /*yield*/, getModelParams(values, true)];
194
195
  case 1:
195
- _a = _b.sent(), errorIndexes = _a.errorIndexes, params = _a.params;
196
+ _a = _c.sent(), errorIndexes = _a.errorIndexes, params = _a.params;
196
197
  if ((values === null || values === void 0 ? void 0 : values.questions.length) > 5) {
197
198
  Message.error('最多可添加5个面试内容。');
198
199
  return [2 /*return*/, false];
@@ -201,6 +202,11 @@ var QuestionUpdate = function () {
201
202
  Message.error('请上传视频素材');
202
203
  return [2 /*return*/, false];
203
204
  }
205
+ _b = values.minResponseDuration, minResponseDuration = _b === void 0 ? 3 : _b, duration = values.duration;
206
+ if (!(minResponseDuration >= 3 && /^[1-9]\d*$/.test(minResponseDuration.toString()) && duration >= minResponseDuration)) {
207
+ Message.error('最少回答时长必须大于等于3s,小于回答时长');
208
+ return [2 /*return*/, false];
209
+ }
204
210
  if (!errorIndexes.length) {
205
211
  token ? editModel(params, index) : addModel(params);
206
212
  updateQuestionState({ open: false });
@@ -17,6 +17,7 @@ export interface QuestionParams {
17
17
  questions: Question[];
18
18
  prepareTime: number;
19
19
  duration: number;
20
+ minResponseDuration?: number;
20
21
  category?: string[];
21
22
  extra: BaseExtraParams;
22
23
  broadcastType: number;
@@ -39,6 +40,7 @@ export interface QuestionFormValues {
39
40
  questions: Question[];
40
41
  prepareTime: number;
41
42
  duration: number;
43
+ minResponseDuration?: number;
42
44
  broadcastType: number;
43
45
  category?: {
44
46
  label: string;
@@ -10,29 +10,45 @@ 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 { forwardRef, memo, useCallback, useEffect } from 'react';
14
- import { Box, Button, Dialog, styled } from 'fbm-ui';
15
- import ScrollDialogContent from "../../components/ScrollDialogContent";
16
- import { useAiTemplateStore } from "../../store/ai-template/global-store";
17
13
  import CapabilityModel from './components/CapabilityModel';
18
14
  import QuestionList from './components/QuestionList';
19
15
  import TemplateHeader from './components/TemplateHeader';
20
16
  import TemplateList from './components/TemplateList';
21
17
  import TemplateMenu from './components/TemplateMenu';
18
+ import ScrollDialogContent from "../../components/ScrollDialogContent";
19
+ import { useAiTemplateStore } from "../../store/ai-template/global-store";
20
+ import { Box, Button, Dialog, styled, Typography } from 'fbm-ui';
21
+ import { forwardRef, memo, useCallback, useEffect, useState } from 'react';
22
22
  var AiTemplateDialog = styled(Dialog)({
23
23
  '& .MuiPaper-root>.MuiBox-root>.MuiBox-root': {
24
24
  marginBottom: 0,
25
25
  },
26
26
  });
27
27
  var AiTemplateRoot = forwardRef(function (props, ref) {
28
- var _a = useAiTemplateStore(), open = _a.open, previewItem = _a.previewItem, updateProps = _a.updateProps, updateState = _a.updateState, handleIncrUse = _a.handleIncrUse;
28
+ var _a = useAiTemplateStore(), open = _a.open, previewItem = _a.previewItem, _b = _a.currentCheckedQuestions, currentCheckedQuestions = _b === void 0 ? [] : _b, updateProps = _a.updateProps, updateState = _a.updateState, handleIncrUse = _a.handleIncrUse;
29
+ var _c = useState([]), checkedQuestionList = _c[0], setCheckedQuestionList = _c[1];
30
+ var _d = useState(0), curCheckedQuestionListCount = _d[0], setCurCheckedQuestionListCount = _d[1];
29
31
  var handleUseTemplate = useCallback(function () {
30
- var _a;
31
- (_a = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _a === void 0 ? void 0 : _a.call(props, previewItem === null || previewItem === void 0 ? void 0 : previewItem.list);
32
+ var _a, _b;
33
+ if ((currentCheckedQuestions === null || currentCheckedQuestions === void 0 ? void 0 : currentCheckedQuestions.length) > 0) {
34
+ console.log('currentCheckedQuestions', currentCheckedQuestions);
35
+ (_a = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _a === void 0 ? void 0 : _a.call(props, currentCheckedQuestions);
36
+ return;
37
+ }
38
+ (_b = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _b === void 0 ? void 0 : _b.call(props, previewItem === null || previewItem === void 0 ? void 0 : previewItem.list);
32
39
  if (previewItem === null || previewItem === void 0 ? void 0 : previewItem.token) {
33
40
  handleIncrUse(previewItem === null || previewItem === void 0 ? void 0 : previewItem.token);
34
41
  }
35
- }, [handleIncrUse, previewItem, props]);
42
+ }, [handleIncrUse, previewItem, props, currentCheckedQuestions]);
43
+ var handleCheckedQuestionList = useCallback(function (list) {
44
+ setCheckedQuestionList(list);
45
+ var curList = list.filter(function (v) { return v && v.checked; });
46
+ setCurCheckedQuestionListCount(curList.length);
47
+ updateProps(__assign(__assign({}, props), { currentCheckedQuestions: curList }));
48
+ }, [props, updateProps, setCurCheckedQuestionListCount]);
49
+ var handleCheckChange = useCallback(function (list) {
50
+ handleCheckedQuestionList(list);
51
+ }, [handleCheckedQuestionList]);
36
52
  useEffect(function () {
37
53
  if (!props.open) {
38
54
  updateState({ previewItem: undefined });
@@ -40,9 +56,15 @@ var AiTemplateRoot = forwardRef(function (props, ref) {
40
56
  updateProps(props);
41
57
  // eslint-disable-next-line react-hooks/exhaustive-deps
42
58
  }, [props]);
59
+ // 重置选择项
60
+ useEffect(function () {
61
+ if (!previewItem) {
62
+ handleCheckedQuestionList([]);
63
+ }
64
+ }, [previewItem, handleCheckedQuestionList]);
43
65
  return (_jsx(AiTemplateDialog, __assign({ open: open, size: "lg", header: function () { return (_jsx(TemplateHeader, { name: (previewItem === null || previewItem === void 0 ? void 0 : previewItem.positionName) || (previewItem === null || previewItem === void 0 ? void 0 : previewItem.name), onClose: props.onClose, onBack: function () { return updateState({ previewItem: undefined }); }, onSearch: function () { } })); }, footer: function () {
44
- return previewItem ? (_jsx(Box, __assign({ display: "flex", justifyContent: "flex-end", padding: "12px 0" }, { children: _jsx(Button, __assign({ onClick: handleUseTemplate }, { children: "\u4F7F\u7528\u8BE5\u6A21\u7248" })) }))) : null;
45
- }, onClose: props.onClose }, { children: _jsxs(ScrollDialogContent, { children: [_jsxs(Box, __assign({ display: previewItem ? 'flex' : 'none', flexDirection: "column" }, { children: [_jsx(CapabilityModel, {}), _jsx(QuestionList, {})] })), _jsxs(Box, __assign({ display: previewItem ? 'none' : 'flex' }, { children: [_jsx(TemplateMenu, {}), _jsx(TemplateList, {})] }))] }) })));
66
+ return previewItem ? (_jsxs(Box, __assign({ display: "flex", justifyContent: curCheckedQuestionListCount > 0 ? 'space-between' : 'flex-end', alignItems: "center", padding: "12px 0 12px" }, { children: [curCheckedQuestionListCount > 0 && (_jsxs(Typography, __assign({ variant: "body2" }, { children: ["\u5DF2\u9009\u62E9", _jsx("span", __assign({ style: { color: '#4CAF50', margin: '0 3px', fontWeight: 500 } }, { children: curCheckedQuestionListCount })), "\u9898"] }))), _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [curCheckedQuestionListCount > 0 && (_jsx(Button, __assign({ color: "secondary", variant: "text", sx: { mr: 1, color: 'RGBA(0, 0, 0, 0.56)' }, onClick: function () { return handleCheckedQuestionList([]); } }, { children: "\u53D6\u6D88\u9009\u62E9" }))), _jsx(Button, __assign({ onClick: handleUseTemplate }, { children: curCheckedQuestionListCount ? '使用选择题目' : '使用该模版' }))] }))] }))) : null;
67
+ }, onClose: props.onClose }, { children: _jsxs(ScrollDialogContent, { children: [_jsxs(Box, __assign({ display: previewItem ? 'flex' : 'none', flexDirection: "column" }, { children: [_jsx(CapabilityModel, {}), _jsx(QuestionList, { checkedQuestionList: checkedQuestionList, onCheckChange: handleCheckChange })] })), _jsxs(Box, __assign({ display: previewItem ? 'none' : 'flex' }, { children: [_jsx(TemplateMenu, {}), _jsx(TemplateList, {})] }))] }) })));
46
68
  });
47
69
  AiTemplateRoot.displayName = 'AiTemplateRoot';
48
70
  export default memo(AiTemplateRoot);
@@ -10,10 +10,10 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Box, Typography } from 'fbm-ui';
14
13
  import TemplatePieProps from "../../../../components/Charts/TemplatePie";
15
14
  import ScoreBigBall from "../../../../components/ScoreBigBall";
16
15
  import { useAiTemplateStore } from "../../../../store/ai-template/global-store";
16
+ import { Box, Typography } from 'fbm-ui';
17
17
  var CapabilityModel = function () {
18
18
  var _a, _b;
19
19
  var _c = useAiTemplateStore(function (store) { return [store.menuId, store.previewItem]; }), menuId = _c.menuId, previewItem = _c.previewItem;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { QuestionListProps } from './interface';
3
- declare const QuestionItem: React.FC<QuestionListProps>;
2
+ import { QuestionItemProps } from './interface';
3
+ declare const QuestionItem: React.FC<QuestionItemProps>;
4
4
  export default QuestionItem;
@@ -9,16 +9,37 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
13
- import { Box, Button, Chip, Typography } from 'fbm-ui';
14
- import { Done } from '@mui/icons-material';
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
13
  import { useAiTemplateStore } from "../../../../store/ai-template/global-store";
14
+ import { Box, Checkbox, Chip, styled, Typography } from 'fbm-ui';
15
+ import { useCallback, useEffect, useState } from 'react';
16
16
  var QuestionItem = function (_a) {
17
- var item = _a.item, index = _a.index;
17
+ var item = _a.item, index = _a.index, onChange = _a.onChange;
18
18
  var name = item.name, desc = item.desc, category = item.category, weight = item.weight, originToken = item.originToken;
19
- var _b = useAiTemplateStore(function (store) { return [store.currentSteps, store.onUseTemplate]; }), currentSteps = _b.currentSteps, onUseTemplate = _b.onUseTemplate;
20
- console.log(currentSteps);
19
+ var _b = useAiTemplateStore(function (store) { return [store.currentSteps, store.currentCheckedQuestions]; }), currentSteps = _b.currentSteps, currentCheckedQuestions = _b.currentCheckedQuestions;
21
20
  var isUsed = currentSteps === null || currentSteps === void 0 ? void 0 : currentSteps.find(function (step) { return step.originToken === originToken; });
22
- return (_jsxs(Box, __assign({ border: isUsed ? '1px solid rgb(76, 175, 80)' : '1px solid rgba(0,0,0, 0.08)', borderRadius: "6px", mt: 2 }, { children: [_jsxs(Box, __assign({ borderBottom: "1px solid rgba(0,0,0, 0.08)", p: 2, display: "flex", justifyContent: "space-between" }, { children: [_jsxs(Box, { children: [_jsxs(Typography, __assign({ variant: "body1", weight: "500" }, { children: [index + 1, ".", name] })), _jsx(Typography, __assign({ variant: "body2", color: "secondary", mt: 1 }, { children: desc }))] }), isUsed && _jsx(Done, { color: "primary" }, "icon")] })), _jsxs(Box, __assign({ display: "flex", justifyContent: "space-between", padding: "8px 8px 8px 16px" }, { children: [_jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [category === null || category === void 0 ? void 0 : category.map(function (label) { return (_jsx(Chip, { color: "default", label: label }, label)); }), _jsxs(Typography, __assign({ variant: "body2", ml: 2 }, { children: ["\u6743\u91CD\u5360\u6BD4\uFF1A", weight, "%"] }))] })), _jsx(Button, __assign({ variant: "outlined", color: "inherit", onClick: function () { return onUseTemplate === null || onUseTemplate === void 0 ? void 0 : onUseTemplate([item]); } }, { children: "\u4F7F\u7528" }))] }))] })));
21
+ var _c = useState(false), curChecked = _c[0], setChecked = _c[1];
22
+ var UsedTag = styled(Box)(function () { return ({
23
+ position: 'absolute',
24
+ right: -1,
25
+ top: -1,
26
+ borderRadius: '0px 4px 0px 12px',
27
+ backgroundColor: '#81C784',
28
+ width: 49,
29
+ height: 24,
30
+ textAlign: 'center',
31
+ color: '#fff',
32
+ fontFamily: 'AlibabaPuHuiTiR',
33
+ fontSize: 12,
34
+ lineHeight: '24px',
35
+ }); });
36
+ var handleChange = useCallback(function (e) {
37
+ onChange === null || onChange === void 0 ? void 0 : onChange(e, index);
38
+ }, [index, onChange]);
39
+ useEffect(function () {
40
+ var checked = !!(currentCheckedQuestions === null || currentCheckedQuestions === void 0 ? void 0 : currentCheckedQuestions.find(function (step) { return step.token === item.token; }));
41
+ setChecked(checked);
42
+ }, [currentCheckedQuestions, item.token]);
43
+ return (_jsxs(Box, __assign({ border: '1px solid rgba(0,0,0, 0.08)', borderRadius: "6px", mt: 2 }, { children: [_jsxs(Box, __assign({ borderBottom: "1px solid rgba(0,0,0, 0.08)", p: 2, display: "flex", alignItems: "center" }, { children: [_jsx(Checkbox, { checked: curChecked, value: originToken, onChange: handleChange }), _jsxs(Box, __assign({ ml: -1 }, { children: [_jsxs(Typography, __assign({ variant: "body1", weight: "500" }, { children: [index + 1, ".", name] })), _jsx(Typography, __assign({ variant: "body2", color: "secondary", mt: 1 }, { children: desc }))] })), isUsed && (_jsx(UsedTag, { children: _jsx("span", { children: "\u5DF2\u4F7F\u7528" }) }))] })), _jsx(Box, __assign({ display: "flex", justifyContent: "space-between", padding: "8px 8px 8px 50px" }, { children: _jsxs(Box, __assign({ display: "flex", alignItems: "center" }, { children: [category === null || category === void 0 ? void 0 : category.map(function (label) { return (_jsx(Chip, { color: "default", label: label }, label)); }), _jsxs(Typography, __assign({ variant: "body2", ml: 2 }, { children: ["\u6743\u91CD\u5360\u6BD4\uFF1A", weight, "%"] }))] })) }))] })));
23
44
  };
24
45
  export default QuestionItem;
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
- declare const QuestionList: React.FC;
2
+ import { QuestionListProps } from './interface';
3
+ declare const QuestionList: React.FC<QuestionListProps>;
3
4
  export default QuestionList;
@@ -10,11 +10,22 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Box, Typography } from 'fbm-ui';
14
- import { useAiTemplateStore } from "../../../../store/ai-template/global-store";
15
13
  import QuestionItem from './Item';
16
- var QuestionList = function () {
14
+ import { useAiTemplateStore } from "../../../../store/ai-template/global-store";
15
+ import { Box, Typography } from 'fbm-ui';
16
+ import { useCallback } from 'react';
17
+ var QuestionList = function (_a) {
18
+ var checkedQuestionList = _a.checkedQuestionList, onCheckChange = _a.onCheckChange;
17
19
  var previewItem = useAiTemplateStore(function (store) { return [store.previewItem]; }).previewItem;
18
- return (_jsxs(Box, __assign({ display: "flex", flexDirection: "column", mt: 3 }, { children: [_jsx(Box, __assign({ display: "flex", alignItems: "center" }, { children: _jsx(Typography, __assign({ variant: "body1", weight: "500" }, { children: "\u9898\u76EE\u5217\u8868" })) })), _jsx(Box, { children: previewItem === null || previewItem === void 0 ? void 0 : previewItem.list.map(function (item, index) { return (_jsx(QuestionItem, { item: item, index: index }, item.token)); }) })] })));
20
+ var handleChange = useCallback(function (e, index) {
21
+ var checked = e.target.checked;
22
+ var item = previewItem === null || previewItem === void 0 ? void 0 : previewItem.list[index];
23
+ if (!item)
24
+ return;
25
+ item.checked = checked;
26
+ checkedQuestionList[index] = item;
27
+ onCheckChange(checkedQuestionList);
28
+ }, [previewItem, onCheckChange, checkedQuestionList]);
29
+ return (_jsxs(Box, __assign({ display: "flex", flexDirection: "column", mt: 3, width: "760px" }, { children: [_jsx(Box, __assign({ display: "flex", alignItems: "center" }, { children: _jsx(Typography, __assign({ variant: "body1", weight: "500" }, { children: "\u9898\u76EE\u5217\u8868" })) })), _jsx(Box, { children: previewItem === null || previewItem === void 0 ? void 0 : previewItem.list.map(function (item, index) { return (_jsx(QuestionItem, { item: item, index: index, onChange: handleChange }, item.token)); }) })] })));
19
30
  };
20
31
  export default QuestionList;
@@ -1,5 +1,10 @@
1
1
  import { QuestionList } from '@/modules/ai-template/interface';
2
- export interface QuestionListProps {
2
+ export interface QuestionItemProps {
3
3
  item: QuestionList;
4
4
  index: number;
5
+ onChange?: (e: any, index: number) => void;
6
+ }
7
+ export interface QuestionListProps {
8
+ checkedQuestionList: QuestionList[];
9
+ onCheckChange: (list: QuestionList[]) => void;
5
10
  }
@@ -10,14 +10,14 @@ 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 { useCallback, useEffect, useRef, useState } from 'react';
14
- import { Box, Button, Typography } from 'fbm-ui';
15
- import { useRequest } from 'ahooks';
13
+ import { AddIconRoot, ListCol, ListItem, ListItemOperation, ListItemSubTitle, ListItemTitle, ListRow } from './styled';
16
14
  import TemplatePie from "../../../../components/Charts/TemplatePie";
17
15
  import ScoreBigBall from "../../../../components/ScoreBigBall";
18
16
  import { PostAiTemplatesDetail, PostAiTemplatesList } from "../../../../services/ai-template";
19
17
  import { useAiTemplateStore } from "../../../../store/ai-template/global-store";
20
- import { AddIconRoot, ListCol, ListItem, ListItemOperation, ListItemSubTitle, ListItemTitle, ListRow } from './styled';
18
+ import { useRequest } from 'ahooks';
19
+ import { Box, Button, Typography } from 'fbm-ui';
20
+ import { useCallback, useEffect, useRef, useState } from 'react';
21
21
  var TemplateList = function () {
22
22
  var isPreview = useRef(false);
23
23
  var _a = useState([]), list = _a[0], setList = _a[1];
@@ -10,9 +10,9 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
- import { forwardRef, memo } from 'react';
14
- import RootProvider from "../../components/RootProvider";
15
13
  import TemplateRoot from './Root';
14
+ import RootProvider from "../../components/RootProvider";
15
+ import { forwardRef, memo } from 'react';
16
16
  var AiTemplate = forwardRef(function (props, ref) {
17
17
  return (_jsx(RootProvider, { children: _jsx(TemplateRoot, __assign({ ref: ref }, props)) }));
18
18
  });
@@ -1,6 +1,7 @@
1
1
  import { QuestionModelStep } from '@/modules/ai-question/components/QuestionModel/interface';
2
2
  import { AiTemplatesCollection, AiTemplatesList } from '@/modules/ai-template/components/TemplateList/interface';
3
3
  export interface QuestionList extends QuestionModelStep {
4
+ checked?: boolean;
4
5
  }
5
6
  export interface HistoryPatterns {
6
7
  token?: string;
@@ -13,6 +14,7 @@ export interface AiTemplateProps {
13
14
  open: boolean;
14
15
  historyPatterns?: HistoryPatterns[];
15
16
  currentSteps?: QuestionList[];
17
+ currentCheckedQuestions?: QuestionList[];
16
18
  onClose?: () => void;
17
19
  onUseTemplate?: (list?: QuestionList[]) => void;
18
20
  }
@@ -8,6 +8,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
8
8
  open: boolean;
9
9
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
10
10
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
11
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
11
12
  onClose?: (() => void) | undefined;
12
13
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
13
14
  }> | undefined) => {
@@ -19,6 +20,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
19
20
  open: boolean;
20
21
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
21
22
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
23
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
22
24
  onClose?: (() => void) | undefined;
23
25
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
24
26
  }, getAiTemplateStore: () => {
@@ -30,6 +32,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
30
32
  open: boolean;
31
33
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
32
34
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
35
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
33
36
  onClose?: (() => void) | undefined;
34
37
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
35
38
  } | undefined;
@@ -10,12 +10,12 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  var _a;
13
- import { useEffect } from 'react';
13
+ import { PostAiTemplatesIncrUse } from "../../services/ai-template";
14
14
  import { useRequest, useSetState } from 'ahooks';
15
15
  import { createGlobalStore } from 'hox';
16
- import { PostAiTemplatesIncrUse } from "../../services/ai-template";
16
+ import { useEffect } from 'react';
17
17
  export var useAiTemplateStore = (_a = createGlobalStore(function () {
18
- var _a = useSetState({ open: false, historyPatterns: [] }), props = _a[0], updateProps = _a[1];
18
+ var _a = useSetState({ open: false, historyPatterns: [], currentCheckedQuestions: [] }), props = _a[0], updateProps = _a[1];
19
19
  var _b = useSetState({ menuId: '' }), state = _b[0], updateState = _b[1];
20
20
  var handleIncrUse = useRequest(PostAiTemplatesIncrUse, { manual: true }).run;
21
21
  useEffect(function () {
@@ -24,13 +24,13 @@ var fbm_ui_1 = require("fbm-ui");
24
24
  var react_1 = require("react");
25
25
  var QuestionPreview = function () {
26
26
  var _a = (0, question_preview_store_1.useQuestionPreviewStore)(), visible = _a.visible, previewItem = _a.previewItem;
27
- var _b = previewItem || {}, _c = _b.name, name = _c === void 0 ? '' : _c, _d = _b.type, type = _d === void 0 ? 1 : _d, _e = _b.broadcastType, broadcastType = _e === void 0 ? 1 : _e, _f = _b.desc, desc = _f === void 0 ? '' : _f, _g = _b.prepareTime, prepareTime = _g === void 0 ? 3 : _g, _h = _b.duration, duration = _h === void 0 ? 30 : _h, extra = _b.extra;
28
- var _j = (0, react_1.useState)(), values = _j[0], setValues = _j[1];
29
- var _k = (0, react_1.useState)('none'), display = _k[0], setDisplay = _k[1];
27
+ var _b = previewItem || {}, _c = _b.name, name = _c === void 0 ? '' : _c, _d = _b.type, type = _d === void 0 ? 1 : _d, _e = _b.broadcastType, broadcastType = _e === void 0 ? 1 : _e, _f = _b.desc, desc = _f === void 0 ? '' : _f, _g = _b.prepareTime, prepareTime = _g === void 0 ? 3 : _g, _h = _b.minResponseDuration, minResponseDuration = _h === void 0 ? 3 : _h, _j = _b.duration, duration = _j === void 0 ? 30 : _j, extra = _b.extra;
28
+ var _k = (0, react_1.useState)(), values = _k[0], setValues = _k[1];
29
+ var _l = (0, react_1.useState)('none'), display = _l[0], setDisplay = _l[1];
30
30
  (0, react_1.useEffect)(function () {
31
- setValues({ name: name, broadcastType: broadcastType, desc: desc, prepareTime: prepareTime, duration: duration, questions: [] });
31
+ setValues({ name: name, broadcastType: broadcastType, desc: desc, prepareTime: prepareTime, duration: duration, minResponseDuration: minResponseDuration, questions: [] });
32
32
  setDisplay(visible ? 'block' : 'none');
33
- }, [name, broadcastType, desc, prepareTime, duration, visible]);
33
+ }, [name, broadcastType, desc, prepareTime, duration, visible, minResponseDuration]);
34
34
  return ((0, jsx_runtime_1.jsx)(styled_1.PreviewRoot, __assign({ style: { display: display } }, { children: (extra === null || extra === void 0 ? void 0 : extra.icon) ? ((0, jsx_runtime_1.jsx)("img", { src: extra === null || extra === void 0 ? void 0 : extra.icon, alt: "", style: { width: 250 } })) : ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ width: 500 }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "h5", textAlign: "center", mb: 3 }, { children: [ai_question_1.QUESTION_TYPE_MAPPING_LABEL[type], "\uFF08\u9884\u89C8\uFF09"] })), values && (0, jsx_runtime_1.jsx)(Form_1.default, { preview: true, aiShowType: ai_question_2.ADD_QUESTION_TYPE.FREE, initialValues: values, values: values })] }))) })));
35
35
  };
36
36
  exports.default = QuestionPreview;
@@ -24,6 +24,7 @@ export interface AiEvaluationList {
24
24
  duration: number;
25
25
  prepareTime: number;
26
26
  questions: Question[];
27
+ minResponseDuration: number;
27
28
  extra: AiEvaluationListExtra;
28
29
  broadcastType: number;
29
30
  aiSwitch: number;
@@ -93,6 +93,22 @@ var QuestionForm = (0, react_1.forwardRef)(function (props, ref) {
93
93
  var handleCategoryChange = function (_, value) {
94
94
  onCategoryChange === null || onCategoryChange === void 0 ? void 0 : onCategoryChange(value);
95
95
  };
96
+ var handleMinResponseDurationChange = function (e) {
97
+ var minResponseDurationValue = e.target.value;
98
+ if (minResponseDurationValue && minResponseDurationValue.indexOf('-') > -1) {
99
+ minResponseDurationValue = minResponseDurationValue.replaceAll('-', '');
100
+ }
101
+ if (minResponseDurationValue && minResponseDurationValue.indexOf('.') > -1) {
102
+ minResponseDurationValue = minResponseDurationValue.split('.')[0];
103
+ }
104
+ if (/^[1-9]\d*$/.test(minResponseDurationValue)) {
105
+ minResponseDurationValue = Number(minResponseDurationValue);
106
+ }
107
+ else {
108
+ minResponseDurationValue = '';
109
+ }
110
+ form.setValues(__assign(__assign({}, form.values), { minResponseDuration: minResponseDurationValue }));
111
+ };
96
112
  (0, react_1.useImperativeHandle)(ref, function () { return ({
97
113
  handleValues: function () { return form.values; },
98
114
  handleSubmit: function () { return form.handleSubmit(); },
@@ -133,7 +149,19 @@ var QuestionForm = (0, react_1.forwardRef)(function (props, ref) {
133
149
  multiline: true,
134
150
  placeholder: '朗读内容(候选人将根据此内容进行朗读)',
135
151
  sx: { padding: 0 },
136
- } })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, __assign({ sx: { height: 64, flex: '1 0', mr: 1 }, required: true, disabled: preview, name: "prepareTime", label: "\u51C6\u5907\u65F6\u957F" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Select, { options: const_1.prepareTimeOptions }) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, __assign({ sx: { height: 64, flex: '1 0' }, required: true, disabled: preview, name: "duration", label: "\u56DE\u7B54\u65F6\u957F" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Select, { options: const_1.durationOptions }) }))] }))] })), !preview && (0, jsx_runtime_1.jsx)(AiAnalysis_1.default, {})] }));
152
+ } })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, __assign({ sx: { height: 64, flex: '1 0', mr: 2 }, required: true, disabled: preview, name: "prepareTime", label: "\u51C6\u5907\u65F6\u957F" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Select, { options: const_1.prepareTimeOptions }) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, __assign({ sx: { height: 64, flex: '1 0' }, required: true, disabled: preview, name: "duration", label: "\u56DE\u7B54\u65F6\u957F" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Select, { options: const_1.durationOptions }) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.FormItem, { sx: { height: 64, flex: '1 0', ml: 2 }, name: "minResponseDuration", label: "\u6700\u5C11\u56DE\u7B54\u65F6\u957F", type: "number",
153
+ // rules={[
154
+ // e => {
155
+ // if (!/^[1-9]\d*$/.test(e.value)) {
156
+ // return '输入不正确';
157
+ // }
158
+ // },
159
+ // ]}
160
+ InputProps: {
161
+ placeholder: '最少回答时长',
162
+ sx: { padding: 0, pr: 1 },
163
+ endAdornment: 's',
164
+ }, onChange: handleMinResponseDurationChange })] }))] })), !preview && (0, jsx_runtime_1.jsx)(AiAnalysis_1.default, {})] }));
137
165
  });
138
166
  QuestionForm.displayName = 'QuestionForm';
139
167
  exports.default = (0, react_1.memo)(QuestionForm);
@@ -20,6 +20,7 @@ exports.defaultQuestionParams = {
20
20
  language: undefined,
21
21
  name: '',
22
22
  prepareTime: 3,
23
+ minResponseDuration: 3,
23
24
  type: 1,
24
25
  videoBroadcast: {
25
26
  videoRetry: 2,
@@ -94,6 +94,7 @@ var QuestionUpdate = function () {
94
94
  readText: (_a = item === null || item === void 0 ? void 0 : item.extra) === null || _a === void 0 ? void 0 : _a.readText,
95
95
  prepareTime: item === null || item === void 0 ? void 0 : item.prepareTime,
96
96
  duration: item === null || item === void 0 ? void 0 : item.duration,
97
+ minResponseDuration: item === null || item === void 0 ? void 0 : item.minResponseDuration,
97
98
  category: (item === null || item === void 0 ? void 0 : item.category) ? { label: (item === null || item === void 0 ? void 0 : item.category[0]) || '', value: (item === null || item === void 0 ? void 0 : item.category[0]) || '' } : { label: '', value: '' },
98
99
  };
99
100
  var CustomHeader = function () {
@@ -192,12 +193,12 @@ var QuestionUpdate = function () {
192
193
  return [2 /*return*/, (_a = formRef === null || formRef === void 0 ? void 0 : formRef.current) === null || _a === void 0 ? void 0 : _a.handleSubmit()];
193
194
  }); }); };
194
195
  var handleSubmit = (0, react_1.useCallback)(function (values) { return __awaiter(void 0, void 0, void 0, function () {
195
- var _a, errorIndexes, params;
196
- return __generator(this, function (_b) {
197
- switch (_b.label) {
196
+ var _a, errorIndexes, params, _b, minResponseDuration, duration;
197
+ return __generator(this, function (_c) {
198
+ switch (_c.label) {
198
199
  case 0: return [4 /*yield*/, getModelParams(values, true)];
199
200
  case 1:
200
- _a = _b.sent(), errorIndexes = _a.errorIndexes, params = _a.params;
201
+ _a = _c.sent(), errorIndexes = _a.errorIndexes, params = _a.params;
201
202
  if ((values === null || values === void 0 ? void 0 : values.questions.length) > 5) {
202
203
  fbm_ui_1.Message.error('最多可添加5个面试内容。');
203
204
  return [2 /*return*/, false];
@@ -206,6 +207,11 @@ var QuestionUpdate = function () {
206
207
  fbm_ui_1.Message.error('请上传视频素材');
207
208
  return [2 /*return*/, false];
208
209
  }
210
+ _b = values.minResponseDuration, minResponseDuration = _b === void 0 ? 3 : _b, duration = values.duration;
211
+ if (!(minResponseDuration >= 3 && /^[1-9]\d*$/.test(minResponseDuration.toString()) && duration >= minResponseDuration)) {
212
+ fbm_ui_1.Message.error('最少回答时长必须大于等于3s,小于回答时长');
213
+ return [2 /*return*/, false];
214
+ }
209
215
  if (!errorIndexes.length) {
210
216
  token ? editModel(params, index) : addModel(params);
211
217
  updateQuestionState({ open: false });
@@ -17,6 +17,7 @@ export interface QuestionParams {
17
17
  questions: Question[];
18
18
  prepareTime: number;
19
19
  duration: number;
20
+ minResponseDuration?: number;
20
21
  category?: string[];
21
22
  extra: BaseExtraParams;
22
23
  broadcastType: number;
@@ -39,6 +40,7 @@ export interface QuestionFormValues {
39
40
  questions: Question[];
40
41
  prepareTime: number;
41
42
  duration: number;
43
+ minResponseDuration?: number;
42
44
  broadcastType: number;
43
45
  category?: {
44
46
  label: string;
@@ -15,29 +15,45 @@ 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 react_1 = require("react");
19
- var fbm_ui_1 = require("fbm-ui");
20
- var ScrollDialogContent_1 = __importDefault(require("../../components/ScrollDialogContent"));
21
- var global_store_1 = require("../../store/ai-template/global-store");
22
18
  var CapabilityModel_1 = __importDefault(require("./components/CapabilityModel"));
23
19
  var QuestionList_1 = __importDefault(require("./components/QuestionList"));
24
20
  var TemplateHeader_1 = __importDefault(require("./components/TemplateHeader"));
25
21
  var TemplateList_1 = __importDefault(require("./components/TemplateList"));
26
22
  var TemplateMenu_1 = __importDefault(require("./components/TemplateMenu"));
23
+ var ScrollDialogContent_1 = __importDefault(require("../../components/ScrollDialogContent"));
24
+ var global_store_1 = require("../../store/ai-template/global-store");
25
+ var fbm_ui_1 = require("fbm-ui");
26
+ var react_1 = require("react");
27
27
  var AiTemplateDialog = (0, fbm_ui_1.styled)(fbm_ui_1.Dialog)({
28
28
  '& .MuiPaper-root>.MuiBox-root>.MuiBox-root': {
29
29
  marginBottom: 0,
30
30
  },
31
31
  });
32
32
  var AiTemplateRoot = (0, react_1.forwardRef)(function (props, ref) {
33
- var _a = (0, global_store_1.useAiTemplateStore)(), open = _a.open, previewItem = _a.previewItem, updateProps = _a.updateProps, updateState = _a.updateState, handleIncrUse = _a.handleIncrUse;
33
+ var _a = (0, global_store_1.useAiTemplateStore)(), open = _a.open, previewItem = _a.previewItem, _b = _a.currentCheckedQuestions, currentCheckedQuestions = _b === void 0 ? [] : _b, updateProps = _a.updateProps, updateState = _a.updateState, handleIncrUse = _a.handleIncrUse;
34
+ var _c = (0, react_1.useState)([]), checkedQuestionList = _c[0], setCheckedQuestionList = _c[1];
35
+ var _d = (0, react_1.useState)(0), curCheckedQuestionListCount = _d[0], setCurCheckedQuestionListCount = _d[1];
34
36
  var handleUseTemplate = (0, react_1.useCallback)(function () {
35
- var _a;
36
- (_a = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _a === void 0 ? void 0 : _a.call(props, previewItem === null || previewItem === void 0 ? void 0 : previewItem.list);
37
+ var _a, _b;
38
+ if ((currentCheckedQuestions === null || currentCheckedQuestions === void 0 ? void 0 : currentCheckedQuestions.length) > 0) {
39
+ console.log('currentCheckedQuestions', currentCheckedQuestions);
40
+ (_a = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _a === void 0 ? void 0 : _a.call(props, currentCheckedQuestions);
41
+ return;
42
+ }
43
+ (_b = props === null || props === void 0 ? void 0 : props.onUseTemplate) === null || _b === void 0 ? void 0 : _b.call(props, previewItem === null || previewItem === void 0 ? void 0 : previewItem.list);
37
44
  if (previewItem === null || previewItem === void 0 ? void 0 : previewItem.token) {
38
45
  handleIncrUse(previewItem === null || previewItem === void 0 ? void 0 : previewItem.token);
39
46
  }
40
- }, [handleIncrUse, previewItem, props]);
47
+ }, [handleIncrUse, previewItem, props, currentCheckedQuestions]);
48
+ var handleCheckedQuestionList = (0, react_1.useCallback)(function (list) {
49
+ setCheckedQuestionList(list);
50
+ var curList = list.filter(function (v) { return v && v.checked; });
51
+ setCurCheckedQuestionListCount(curList.length);
52
+ updateProps(__assign(__assign({}, props), { currentCheckedQuestions: curList }));
53
+ }, [props, updateProps, setCurCheckedQuestionListCount]);
54
+ var handleCheckChange = (0, react_1.useCallback)(function (list) {
55
+ handleCheckedQuestionList(list);
56
+ }, [handleCheckedQuestionList]);
41
57
  (0, react_1.useEffect)(function () {
42
58
  if (!props.open) {
43
59
  updateState({ previewItem: undefined });
@@ -45,9 +61,15 @@ var AiTemplateRoot = (0, react_1.forwardRef)(function (props, ref) {
45
61
  updateProps(props);
46
62
  // eslint-disable-next-line react-hooks/exhaustive-deps
47
63
  }, [props]);
64
+ // 重置选择项
65
+ (0, react_1.useEffect)(function () {
66
+ if (!previewItem) {
67
+ handleCheckedQuestionList([]);
68
+ }
69
+ }, [previewItem, handleCheckedQuestionList]);
48
70
  return ((0, jsx_runtime_1.jsx)(AiTemplateDialog, __assign({ open: open, size: "lg", header: function () { return ((0, jsx_runtime_1.jsx)(TemplateHeader_1.default, { name: (previewItem === null || previewItem === void 0 ? void 0 : previewItem.positionName) || (previewItem === null || previewItem === void 0 ? void 0 : previewItem.name), onClose: props.onClose, onBack: function () { return updateState({ previewItem: undefined }); }, onSearch: function () { } })); }, footer: function () {
49
- return previewItem ? ((0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", justifyContent: "flex-end", padding: "12px 0" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ onClick: handleUseTemplate }, { children: "\u4F7F\u7528\u8BE5\u6A21\u7248" })) }))) : null;
50
- }, onClose: props.onClose }, { children: (0, jsx_runtime_1.jsxs)(ScrollDialogContent_1.default, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: previewItem ? 'flex' : 'none', flexDirection: "column" }, { children: [(0, jsx_runtime_1.jsx)(CapabilityModel_1.default, {}), (0, jsx_runtime_1.jsx)(QuestionList_1.default, {})] })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: previewItem ? 'none' : 'flex' }, { children: [(0, jsx_runtime_1.jsx)(TemplateMenu_1.default, {}), (0, jsx_runtime_1.jsx)(TemplateList_1.default, {})] }))] }) })));
71
+ return previewItem ? ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", justifyContent: curCheckedQuestionListCount > 0 ? 'space-between' : 'flex-end', alignItems: "center", padding: "12px 0 12px" }, { children: [curCheckedQuestionListCount > 0 && ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "body2" }, { children: ["\u5DF2\u9009\u62E9", (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: '#4CAF50', margin: '0 3px', fontWeight: 500 } }, { children: curCheckedQuestionListCount })), "\u9898"] }))), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [curCheckedQuestionListCount > 0 && ((0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ color: "secondary", variant: "text", sx: { mr: 1, color: 'RGBA(0, 0, 0, 0.56)' }, onClick: function () { return handleCheckedQuestionList([]); } }, { children: "\u53D6\u6D88\u9009\u62E9" }))), (0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ onClick: handleUseTemplate }, { children: curCheckedQuestionListCount ? '使用选择题目' : '使用该模版' }))] }))] }))) : null;
72
+ }, onClose: props.onClose }, { children: (0, jsx_runtime_1.jsxs)(ScrollDialogContent_1.default, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: previewItem ? 'flex' : 'none', flexDirection: "column" }, { children: [(0, jsx_runtime_1.jsx)(CapabilityModel_1.default, {}), (0, jsx_runtime_1.jsx)(QuestionList_1.default, { checkedQuestionList: checkedQuestionList, onCheckChange: handleCheckChange })] })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: previewItem ? 'none' : 'flex' }, { children: [(0, jsx_runtime_1.jsx)(TemplateMenu_1.default, {}), (0, jsx_runtime_1.jsx)(TemplateList_1.default, {})] }))] }) })));
51
73
  });
52
74
  AiTemplateRoot.displayName = 'AiTemplateRoot';
53
75
  exports.default = (0, react_1.memo)(AiTemplateRoot);
@@ -15,10 +15,10 @@ 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
18
  var TemplatePie_1 = __importDefault(require("../../../../components/Charts/TemplatePie"));
20
19
  var ScoreBigBall_1 = __importDefault(require("../../../../components/ScoreBigBall"));
21
20
  var global_store_1 = require("../../../../store/ai-template/global-store");
21
+ var fbm_ui_1 = require("fbm-ui");
22
22
  var CapabilityModel = function () {
23
23
  var _a, _b;
24
24
  var _c = (0, global_store_1.useAiTemplateStore)(function (store) { return [store.menuId, store.previewItem]; }), menuId = _c.menuId, previewItem = _c.previewItem;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { QuestionListProps } from './interface';
3
- declare const QuestionItem: React.FC<QuestionListProps>;
2
+ import { QuestionItemProps } from './interface';
3
+ declare const QuestionItem: React.FC<QuestionItemProps>;
4
4
  export default QuestionItem;
@@ -12,15 +12,36 @@ var __assign = (this && this.__assign) || function () {
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  var jsx_runtime_1 = require("react/jsx-runtime");
15
- var fbm_ui_1 = require("fbm-ui");
16
- var icons_material_1 = require("@mui/icons-material");
17
15
  var global_store_1 = require("../../../../store/ai-template/global-store");
16
+ var fbm_ui_1 = require("fbm-ui");
17
+ var react_1 = require("react");
18
18
  var QuestionItem = function (_a) {
19
- var item = _a.item, index = _a.index;
19
+ var item = _a.item, index = _a.index, onChange = _a.onChange;
20
20
  var name = item.name, desc = item.desc, category = item.category, weight = item.weight, originToken = item.originToken;
21
- var _b = (0, global_store_1.useAiTemplateStore)(function (store) { return [store.currentSteps, store.onUseTemplate]; }), currentSteps = _b.currentSteps, onUseTemplate = _b.onUseTemplate;
22
- console.log(currentSteps);
21
+ var _b = (0, global_store_1.useAiTemplateStore)(function (store) { return [store.currentSteps, store.currentCheckedQuestions]; }), currentSteps = _b.currentSteps, currentCheckedQuestions = _b.currentCheckedQuestions;
23
22
  var isUsed = currentSteps === null || currentSteps === void 0 ? void 0 : currentSteps.find(function (step) { return step.originToken === originToken; });
24
- return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ border: isUsed ? '1px solid rgb(76, 175, 80)' : '1px solid rgba(0,0,0, 0.08)', borderRadius: "6px", mt: 2 }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ borderBottom: "1px solid rgba(0,0,0, 0.08)", p: 2, display: "flex", justifyContent: "space-between" }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "body1", weight: "500" }, { children: [index + 1, ".", name] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary", mt: 1 }, { children: desc }))] }), isUsed && (0, jsx_runtime_1.jsx)(icons_material_1.Done, { color: "primary" }, "icon")] })), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", justifyContent: "space-between", padding: "8px 8px 8px 16px" }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [category === null || category === void 0 ? void 0 : category.map(function (label) { return ((0, jsx_runtime_1.jsx)(fbm_ui_1.Chip, { color: "default", label: label }, label)); }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "body2", ml: 2 }, { children: ["\u6743\u91CD\u5360\u6BD4\uFF1A", weight, "%"] }))] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Button, __assign({ variant: "outlined", color: "inherit", onClick: function () { return onUseTemplate === null || onUseTemplate === void 0 ? void 0 : onUseTemplate([item]); } }, { children: "\u4F7F\u7528" }))] }))] })));
23
+ var _c = (0, react_1.useState)(false), curChecked = _c[0], setChecked = _c[1];
24
+ var UsedTag = (0, fbm_ui_1.styled)(fbm_ui_1.Box)(function () { return ({
25
+ position: 'absolute',
26
+ right: -1,
27
+ top: -1,
28
+ borderRadius: '0px 4px 0px 12px',
29
+ backgroundColor: '#81C784',
30
+ width: 49,
31
+ height: 24,
32
+ textAlign: 'center',
33
+ color: '#fff',
34
+ fontFamily: 'AlibabaPuHuiTiR',
35
+ fontSize: 12,
36
+ lineHeight: '24px',
37
+ }); });
38
+ var handleChange = (0, react_1.useCallback)(function (e) {
39
+ onChange === null || onChange === void 0 ? void 0 : onChange(e, index);
40
+ }, [index, onChange]);
41
+ (0, react_1.useEffect)(function () {
42
+ var checked = !!(currentCheckedQuestions === null || currentCheckedQuestions === void 0 ? void 0 : currentCheckedQuestions.find(function (step) { return step.token === item.token; }));
43
+ setChecked(checked);
44
+ }, [currentCheckedQuestions, item.token]);
45
+ return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ border: '1px solid rgba(0,0,0, 0.08)', borderRadius: "6px", mt: 2 }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ borderBottom: "1px solid rgba(0,0,0, 0.08)", p: 2, display: "flex", alignItems: "center" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Checkbox, { checked: curChecked, value: originToken, onChange: handleChange }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ ml: -1 }, { children: [(0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "body1", weight: "500" }, { children: [index + 1, ".", name] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body2", color: "secondary", mt: 1 }, { children: desc }))] })), isUsed && ((0, jsx_runtime_1.jsx)(UsedTag, { children: (0, jsx_runtime_1.jsx)("span", { children: "\u5DF2\u4F7F\u7528" }) }))] })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", justifyContent: "space-between", padding: "8px 8px 8px 50px" }, { children: (0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: [category === null || category === void 0 ? void 0 : category.map(function (label) { return ((0, jsx_runtime_1.jsx)(fbm_ui_1.Chip, { color: "default", label: label }, label)); }), (0, jsx_runtime_1.jsxs)(fbm_ui_1.Typography, __assign({ variant: "body2", ml: 2 }, { children: ["\u6743\u91CD\u5360\u6BD4\uFF1A", weight, "%"] }))] })) }))] })));
25
46
  };
26
47
  exports.default = QuestionItem;
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
- declare const QuestionList: React.FC;
2
+ import { QuestionListProps } from './interface';
3
+ declare const QuestionList: React.FC<QuestionListProps>;
3
4
  export default QuestionList;
@@ -15,11 +15,22 @@ 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 global_store_1 = require("../../../../store/ai-template/global-store");
20
18
  var Item_1 = __importDefault(require("./Item"));
21
- var QuestionList = function () {
19
+ var global_store_1 = require("../../../../store/ai-template/global-store");
20
+ var fbm_ui_1 = require("fbm-ui");
21
+ var react_1 = require("react");
22
+ var QuestionList = function (_a) {
23
+ var checkedQuestionList = _a.checkedQuestionList, onCheckChange = _a.onCheckChange;
22
24
  var previewItem = (0, global_store_1.useAiTemplateStore)(function (store) { return [store.previewItem]; }).previewItem;
23
- return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", flexDirection: "column", mt: 3 }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body1", weight: "500" }, { children: "\u9898\u76EE\u5217\u8868" })) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, { children: previewItem === null || previewItem === void 0 ? void 0 : previewItem.list.map(function (item, index) { return ((0, jsx_runtime_1.jsx)(Item_1.default, { item: item, index: index }, item.token)); }) })] })));
25
+ var handleChange = (0, react_1.useCallback)(function (e, index) {
26
+ var checked = e.target.checked;
27
+ var item = previewItem === null || previewItem === void 0 ? void 0 : previewItem.list[index];
28
+ if (!item)
29
+ return;
30
+ item.checked = checked;
31
+ checkedQuestionList[index] = item;
32
+ onCheckChange(checkedQuestionList);
33
+ }, [previewItem, onCheckChange, checkedQuestionList]);
34
+ return ((0, jsx_runtime_1.jsxs)(fbm_ui_1.Box, __assign({ display: "flex", flexDirection: "column", mt: 3, width: "760px" }, { children: [(0, jsx_runtime_1.jsx)(fbm_ui_1.Box, __assign({ display: "flex", alignItems: "center" }, { children: (0, jsx_runtime_1.jsx)(fbm_ui_1.Typography, __assign({ variant: "body1", weight: "500" }, { children: "\u9898\u76EE\u5217\u8868" })) })), (0, jsx_runtime_1.jsx)(fbm_ui_1.Box, { children: previewItem === null || previewItem === void 0 ? void 0 : previewItem.list.map(function (item, index) { return ((0, jsx_runtime_1.jsx)(Item_1.default, { item: item, index: index, onChange: handleChange }, item.token)); }) })] })));
24
35
  };
25
36
  exports.default = QuestionList;
@@ -1,5 +1,10 @@
1
1
  import { QuestionList } from '@/modules/ai-template/interface';
2
- export interface QuestionListProps {
2
+ export interface QuestionItemProps {
3
3
  item: QuestionList;
4
4
  index: number;
5
+ onChange?: (e: any, index: number) => void;
6
+ }
7
+ export interface QuestionListProps {
8
+ checkedQuestionList: QuestionList[];
9
+ onCheckChange: (list: QuestionList[]) => void;
5
10
  }
@@ -15,14 +15,14 @@ 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 react_1 = require("react");
19
- var fbm_ui_1 = require("fbm-ui");
20
- var ahooks_1 = require("ahooks");
18
+ var styled_1 = require("./styled");
21
19
  var TemplatePie_1 = __importDefault(require("../../../../components/Charts/TemplatePie"));
22
20
  var ScoreBigBall_1 = __importDefault(require("../../../../components/ScoreBigBall"));
23
21
  var ai_template_1 = require("../../../../services/ai-template");
24
22
  var global_store_1 = require("../../../../store/ai-template/global-store");
25
- var styled_1 = require("./styled");
23
+ var ahooks_1 = require("ahooks");
24
+ var fbm_ui_1 = require("fbm-ui");
25
+ var react_1 = require("react");
26
26
  var TemplateList = function () {
27
27
  var isPreview = (0, react_1.useRef)(false);
28
28
  var _a = (0, react_1.useState)([]), list = _a[0], setList = _a[1];
@@ -15,9 +15,9 @@ 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 react_1 = require("react");
19
- var RootProvider_1 = __importDefault(require("../../components/RootProvider"));
20
18
  var Root_1 = __importDefault(require("./Root"));
19
+ var RootProvider_1 = __importDefault(require("../../components/RootProvider"));
20
+ var react_1 = require("react");
21
21
  var AiTemplate = (0, react_1.forwardRef)(function (props, ref) {
22
22
  return ((0, jsx_runtime_1.jsx)(RootProvider_1.default, { children: (0, jsx_runtime_1.jsx)(Root_1.default, __assign({ ref: ref }, props)) }));
23
23
  });
@@ -1,6 +1,7 @@
1
1
  import { QuestionModelStep } from '@/modules/ai-question/components/QuestionModel/interface';
2
2
  import { AiTemplatesCollection, AiTemplatesList } from '@/modules/ai-template/components/TemplateList/interface';
3
3
  export interface QuestionList extends QuestionModelStep {
4
+ checked?: boolean;
4
5
  }
5
6
  export interface HistoryPatterns {
6
7
  token?: string;
@@ -13,6 +14,7 @@ export interface AiTemplateProps {
13
14
  open: boolean;
14
15
  historyPatterns?: HistoryPatterns[];
15
16
  currentSteps?: QuestionList[];
17
+ currentCheckedQuestions?: QuestionList[];
16
18
  onClose?: () => void;
17
19
  onUseTemplate?: (list?: QuestionList[]) => void;
18
20
  }
@@ -8,6 +8,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
8
8
  open: boolean;
9
9
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
10
10
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
11
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
11
12
  onClose?: (() => void) | undefined;
12
13
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
13
14
  }> | undefined) => {
@@ -19,6 +20,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
19
20
  open: boolean;
20
21
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
21
22
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
23
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
22
24
  onClose?: (() => void) | undefined;
23
25
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
24
26
  }, getAiTemplateStore: () => {
@@ -30,6 +32,7 @@ export declare const useAiTemplateStore: (depsFn?: import("hox/es/types").DepsFn
30
32
  open: boolean;
31
33
  historyPatterns?: import("@/modules/ai-template/interface").HistoryPatterns[] | undefined;
32
34
  currentSteps?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
35
+ currentCheckedQuestions?: import("@/modules/ai-template/interface").QuestionList[] | undefined;
33
36
  onClose?: (() => void) | undefined;
34
37
  onUseTemplate?: ((list?: import("@/modules/ai-template/interface").QuestionList[] | undefined) => void) | undefined;
35
38
  } | undefined;
@@ -13,12 +13,12 @@ var __assign = (this && this.__assign) || function () {
13
13
  var _a;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.getAiTemplateStore = exports.useAiTemplateStore = void 0;
16
- var react_1 = require("react");
16
+ var ai_template_1 = require("../../services/ai-template");
17
17
  var ahooks_1 = require("ahooks");
18
18
  var hox_1 = require("hox");
19
- var ai_template_1 = require("../../services/ai-template");
19
+ var react_1 = require("react");
20
20
  exports.useAiTemplateStore = (_a = (0, hox_1.createGlobalStore)(function () {
21
- var _a = (0, ahooks_1.useSetState)({ open: false, historyPatterns: [] }), props = _a[0], updateProps = _a[1];
21
+ var _a = (0, ahooks_1.useSetState)({ open: false, historyPatterns: [], currentCheckedQuestions: [] }), props = _a[0], updateProps = _a[1];
22
22
  var _b = (0, ahooks_1.useSetState)({ menuId: '' }), state = _b[0], updateState = _b[1];
23
23
  var handleIncrUse = (0, ahooks_1.useRequest)(ai_template_1.PostAiTemplatesIncrUse, { manual: true }).run;
24
24
  (0, react_1.useEffect)(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eli-video-interview",
3
- "version": "1.2.35.alpha.3",
3
+ "version": "1.2.35.alpha.4",
4
4
  "description": "鳄梨科技 AI视频面试 React SDK",
5
5
  "author": "鳄梨科技",
6
6
  "license": "MIT",