@myun/gimi-chat 0.9.34 → 0.9.36

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 (36) hide show
  1. package/dist/apis/useApi.d.ts +24 -1
  2. package/dist/apis/useApi.js +142 -83
  3. package/dist/components/ai-loading/index.d.ts +4 -1
  4. package/dist/components/ai-loading/index.js +7 -3
  5. package/dist/components/answer-item/index.js +9 -0
  6. package/dist/components/file-upload/index.js +1 -1
  7. package/dist/components/gimi-sidebar/index.module.css +1 -1
  8. package/dist/components/knowledge-trace/KnowledgeIconComponent.js +47 -18
  9. package/dist/components/knowledge-trace/classList.js +2 -4
  10. package/dist/components/knowledge-trace/config.d.ts +92 -0
  11. package/dist/components/knowledge-trace/config.js +154 -0
  12. package/dist/components/knowledge-trace/documentList.d.ts +1 -0
  13. package/dist/components/knowledge-trace/documentList.js +10 -35
  14. package/dist/components/knowledge-trace/index.d.ts +1 -1
  15. package/dist/components/knowledge-trace/index.module.css +241 -9
  16. package/dist/components/knowledge-trace/information.d.ts +7 -0
  17. package/dist/components/knowledge-trace/information.js +25 -0
  18. package/dist/components/knowledge-trace/interfaces.d.ts +2 -0
  19. package/dist/components/knowledge-trace/tryWatch.d.ts +11 -0
  20. package/dist/components/knowledge-trace/tryWatch.js +430 -0
  21. package/dist/components/knowledge-trace/videoList.d.ts +1 -0
  22. package/dist/components/knowledge-trace/videoList.js +8 -37
  23. package/dist/components/upload-list/CustomFile.js +3 -1
  24. package/dist/components/upload-list/ImageFile.js +4 -3
  25. package/dist/components/upload-list/imageFile.module.css +7 -0
  26. package/dist/constants.d.ts +1 -0
  27. package/dist/constants.js +2 -1
  28. package/dist/hooks/useKnowledgeService.d.ts +2 -0
  29. package/dist/hooks/useKnowledgeService.js +70 -23
  30. package/dist/i18n/locales/en-US.d.ts +31 -0
  31. package/dist/i18n/locales/en-US.js +45 -14
  32. package/dist/i18n/locales/zh-CN.d.ts +31 -0
  33. package/dist/i18n/locales/zh-CN.js +32 -1
  34. package/dist/interfaces/knowledgeTrace.d.ts +70 -0
  35. package/dist/umd/index.min.js +1 -1
  36. package/package.json +2 -1
@@ -2,7 +2,7 @@ import styles from "./index.module.css";
2
2
  import classNames from 'classnames';
3
3
  import React from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
- import { Toast, Tooltip } from '@douyinfe/semi-ui';
5
+ import { Toast } from '@douyinfe/semi-ui';
6
6
  import { useAppSelector } from "../../store/hooks";
7
7
  var ClassItem = function ClassItem(_ref) {
8
8
  var _konwledgeTraceState$, _item$name;
@@ -53,9 +53,7 @@ var ClassItem = function ClassItem(_ref) {
53
53
  className: styles.class_description
54
54
  }, /*#__PURE__*/React.createElement("div", {
55
55
  className: styles.text
56
- }, tagContent, /*#__PURE__*/React.createElement(Tooltip, {
57
- content: item.name
58
- }, ((_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.length) > 33 ? "".concat(item.name.substring(0, 33), "...") : item.name || '')), item.isDelete === 1 && /*#__PURE__*/React.createElement("div", {
56
+ }, tagContent, ((_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.length) > 33 ? "".concat(item.name.substring(0, 33), "...") : item.name || ''), item.isDelete === 1 && /*#__PURE__*/React.createElement("div", {
59
57
  className: styles.knowledge_trace_deactive
60
58
  }, t('trace.course.invalid'))));
61
59
  };
@@ -0,0 +1,92 @@
1
+ /**
2
+ * 法规信息表格字段映射配置
3
+ * 根据 regulationType 决定展示哪些字段
4
+ */
5
+ export declare const FIELDS: {
6
+ contentCategory: {
7
+ key: string;
8
+ i18nKey: string;
9
+ dataKey: string;
10
+ isArray: boolean;
11
+ };
12
+ policyValidity: {
13
+ key: string;
14
+ i18nKey: string;
15
+ dataKey: string;
16
+ };
17
+ publishOrg: {
18
+ key: string;
19
+ i18nKey: string;
20
+ dataKey: string;
21
+ };
22
+ docNo: {
23
+ key: string;
24
+ i18nKey: string;
25
+ dataKey: string;
26
+ };
27
+ publishDate: {
28
+ key: string;
29
+ i18nKey: string;
30
+ dataKey: string;
31
+ };
32
+ effectiveDate: {
33
+ key: string;
34
+ i18nKey: string;
35
+ dataKey: string;
36
+ };
37
+ reviseDate: {
38
+ key: string;
39
+ i18nKey: string;
40
+ dataKey: string;
41
+ };
42
+ taxType: {
43
+ key: string;
44
+ i18nKey: string;
45
+ dataKey: string;
46
+ };
47
+ industryCategory: {
48
+ key: string;
49
+ i18nKey: string;
50
+ dataKey: string;
51
+ };
52
+ keywords: {
53
+ key: string;
54
+ i18nKey: string;
55
+ dataKey: string;
56
+ };
57
+ applicableRegion: {
58
+ key: string;
59
+ i18nKey: string;
60
+ dataKey: string;
61
+ };
62
+ isTaxPreferential: {
63
+ key: string;
64
+ i18nKey: string;
65
+ dataKey: string;
66
+ };
67
+ applicableCountry: {
68
+ key: string;
69
+ i18nKey: string;
70
+ dataKey: string;
71
+ };
72
+ signDate: {
73
+ key: string;
74
+ i18nKey: string;
75
+ dataKey: string;
76
+ };
77
+ executeDate: {
78
+ key: string;
79
+ i18nKey: string;
80
+ dataKey: string;
81
+ };
82
+ };
83
+ export declare const REGULATION_TYPE_FIELDS: Record<number, string[]>;
84
+ /**
85
+ * 根据 regulationType 获取字段列表
86
+ * 如果 regulationType 不存在,返回空数组
87
+ */
88
+ export declare const getFieldsByType: (type: number) => string[];
89
+ /**
90
+ * 根据 regulationType 获取字段配置列表
91
+ */
92
+ export declare const getFieldConfigsByType: (type: number) => (typeof FIELDS)[keyof typeof FIELDS][];
@@ -0,0 +1,154 @@
1
+ /**
2
+ * 法规信息表格字段映射配置
3
+ * 根据 regulationType 决定展示哪些字段
4
+ */
5
+
6
+ // 字段定义
7
+ export var FIELDS = {
8
+ contentCategory: {
9
+ key: 'contentCategory',
10
+ i18nKey: 'informationDetail.contentCategory',
11
+ dataKey: 'contentCategory',
12
+ isArray: true // contentCategory 是数组,需要特殊处理
13
+ },
14
+ policyValidity: {
15
+ key: 'policyValidity',
16
+ i18nKey: 'informationDetail.taxEffectivePeriod',
17
+ dataKey: 'policyValidity'
18
+ },
19
+ publishOrg: {
20
+ key: 'publishOrg',
21
+ i18nKey: 'informationDetail.issuingDepartmentLabel',
22
+ dataKey: 'publishOrg'
23
+ },
24
+ docNo: {
25
+ key: 'docNo',
26
+ i18nKey: 'informationDetail.documentNumberLabel',
27
+ dataKey: 'docNo'
28
+ },
29
+ publishDate: {
30
+ key: 'publishDate',
31
+ i18nKey: 'informationDetail.publishDate',
32
+ dataKey: 'publishDate'
33
+ },
34
+ effectiveDate: {
35
+ key: 'effectiveDate',
36
+ i18nKey: 'informationDetail.effectiveDateLabel',
37
+ dataKey: 'effectiveDate'
38
+ },
39
+ reviseDate: {
40
+ key: 'reviseDate',
41
+ i18nKey: 'informationDetail.reviseDate',
42
+ dataKey: 'reviseDate'
43
+ },
44
+ taxType: {
45
+ key: 'taxType',
46
+ i18nKey: 'informationDetail.taxTypeLabel',
47
+ dataKey: 'taxType'
48
+ },
49
+ industryCategory: {
50
+ key: 'industryCategory',
51
+ i18nKey: 'informationDetail.industryCategory',
52
+ dataKey: 'industryCategory'
53
+ },
54
+ keywords: {
55
+ key: 'keywords',
56
+ i18nKey: 'informationDetail.keywords',
57
+ dataKey: 'keywords'
58
+ },
59
+ applicableRegion: {
60
+ key: 'applicableRegion',
61
+ i18nKey: 'informationDetail.applicableArea',
62
+ dataKey: 'applicableRegion'
63
+ },
64
+ isTaxPreferential: {
65
+ key: 'isTaxPreferential',
66
+ i18nKey: 'informationDetail.taxPreferenceLabel',
67
+ dataKey: 'isTaxPreferential'
68
+ },
69
+ applicableCountry: {
70
+ key: 'applicableCountry',
71
+ i18nKey: 'informationDetail.applicableCountry',
72
+ dataKey: 'applicableCountry'
73
+ },
74
+ signDate: {
75
+ key: 'signDate',
76
+ i18nKey: 'informationDetail.signDate',
77
+ dataKey: 'signDate'
78
+ },
79
+ executeDate: {
80
+ key: 'executeDate',
81
+ i18nKey: 'informationDetail.executeDate',
82
+ dataKey: 'executeDate'
83
+ }
84
+ };
85
+
86
+ // ============ 字段组合配置(提取重复配置)============
87
+
88
+ // 法规政策专用字段组合
89
+ var REGULATION_POLICY_FIELDS = ['contentCategory', 'policyValidity', 'publishOrg', 'applicableRegion', 'docNo', 'publishDate', 'effectiveDate', 'reviseDate', 'taxType', 'industryCategory', 'isTaxPreferential', 'keywords'];
90
+
91
+ // 政策解读/指引/问答/案例 专用字段组合
92
+ var POLICY_INTERPRETATION_FIELDS = ['contentCategory', 'publishOrg', 'applicableRegion', 'publishDate', 'taxType', 'industryCategory', 'isTaxPreferential', 'keywords'];
93
+
94
+ // 境外税制 专用字段组合(投资指南、海外税收指引、全球税收政策、海外案例、跨境问答、表单模板)
95
+ var OVERSEAS_TAX_FIELDS = ['contentCategory', 'publishOrg', 'applicableCountry', 'taxType', 'industryCategory', 'keywords'];
96
+
97
+ // 税收条约/协定 专用字段组合
98
+ var TAX_TREATY_FIELDS = ['contentCategory', 'applicableCountry', 'publishOrg', 'signDate', 'effectiveDate', 'executeDate', 'keywords'];
99
+
100
+ // 办税指南专用字段组合
101
+ var TAX_GUIDE_FIELDS = ['contentCategory', 'publishOrg', 'applicableRegion', 'publishDate', 'taxType', 'keywords'];
102
+
103
+ // ============ regulationType 与字段的映射 ============
104
+
105
+ export var REGULATION_TYPE_FIELDS = {
106
+ // 0: 法规政策
107
+ 0: REGULATION_POLICY_FIELDS,
108
+ 1: POLICY_INTERPRETATION_FIELDS,
109
+ // 政策解读
110
+ 2: POLICY_INTERPRETATION_FIELDS,
111
+ // 政策指引
112
+ 3: POLICY_INTERPRETATION_FIELDS,
113
+ // 政策问答
114
+ 4: POLICY_INTERPRETATION_FIELDS,
115
+ // 税收案例
116
+
117
+ 5: OVERSEAS_TAX_FIELDS,
118
+ // 投资指南 ---待定
119
+ 6: OVERSEAS_TAX_FIELDS,
120
+ // 海外税收指引
121
+ 7: OVERSEAS_TAX_FIELDS,
122
+ // 全球税收政策
123
+ 8: OVERSEAS_TAX_FIELDS,
124
+ // 海外案例
125
+ 9: OVERSEAS_TAX_FIELDS,
126
+ // 跨境问答
127
+
128
+ 10: TAX_TREATY_FIELDS,
129
+ // 税收协定
130
+ 12: TAX_TREATY_FIELDS,
131
+ // 税收条约
132
+
133
+ 11: TAX_GUIDE_FIELDS,
134
+ // 办税指南
135
+ 13: TAX_GUIDE_FIELDS // 表单模板
136
+ };
137
+
138
+ /**
139
+ * 根据 regulationType 获取字段列表
140
+ * 如果 regulationType 不存在,返回空数组
141
+ */
142
+ export var getFieldsByType = function getFieldsByType(type) {
143
+ return REGULATION_TYPE_FIELDS[type] || [];
144
+ };
145
+
146
+ /**
147
+ * 根据 regulationType 获取字段配置列表
148
+ */
149
+ export var getFieldConfigsByType = function getFieldConfigsByType(type) {
150
+ var fieldKeys = getFieldsByType(type);
151
+ return fieldKeys.map(function (key) {
152
+ return FIELDS[key];
153
+ });
154
+ };
@@ -3,5 +3,6 @@ import type { ITeachingModuleResource } from './interfaces';
3
3
  declare const DocumentList: React.FC<{
4
4
  list: ITeachingModuleResource[];
5
5
  hiddenTitle?: boolean;
6
+ handleCurrentTrace?: (trace: ITeachingModuleResource) => void;
6
7
  }>;
7
8
  export default DocumentList;
@@ -3,60 +3,33 @@ import { useTranslation } from 'react-i18next';
3
3
  import styles from "./index.module.css";
4
4
  import classNames from 'classnames';
5
5
  import { documentConstants } from "../../constants";
6
- import { Toast, Tooltip } from '@douyinfe/semi-ui';
7
6
  import { useAppSelector } from "../../store/hooks";
8
- var SUPPORT_PREVIEW_FILE_TYPE = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx'];
9
7
  var FileItem = function FileItem(_ref) {
10
8
  var _konwledgeTraceState$;
11
- var item = _ref.item;
9
+ var item = _ref.item,
10
+ handleCurrentTrace = _ref.handleCurrentTrace;
12
11
  var _useTranslation = useTranslation(),
13
12
  t = _useTranslation.t;
14
13
  var konwledgeTraceState = useAppSelector(function (state) {
15
14
  return state.gimiMenu.sidebar.knowledgeTrace;
16
15
  });
17
- var platform = useAppSelector(function (state) {
18
- return state.gimiMenu.platform;
19
- });
20
16
  var isActive = (_konwledgeTraceState$ = konwledgeTraceState.resources) === null || _konwledgeTraceState$ === void 0 || (_konwledgeTraceState$ = _konwledgeTraceState$.map(function (item) {
21
17
  return item.id;
22
18
  })) === null || _konwledgeTraceState$ === void 0 ? void 0 : _konwledgeTraceState$.includes("".concat(item.hostId));
23
- var handleClick = function handleClick() {
24
- if (item.isDelete === 1) return;
25
- if (platform !== 'myun') return Toast.warning(t('trace.jumpUnsupported'));
26
- var searchParams = "gradeId=".concat(item.gradeId, "&teachModuleId=").concat(item.id, "&outlineId=").concat(item.courseId, "&phaseId=").concat(item.phaseId);
27
- if (!item.gradeId) {
28
- if (SUPPORT_PREVIEW_FILE_TYPE.includes(item.suffix)) {
29
- var url = "https://view.officeapps.live.com/op/embed.aspx?src=".concat(encodeURIComponent(item.url));
30
- window.open(url);
31
- } else {
32
- window.open(item.url);
33
- }
34
- return;
35
- }
36
- if (item.isJoinClass) {
37
- window.open("/learningPage?".concat(searchParams));
38
- } else {
39
- if (item.productType === 'single') {
40
- window.open("/new-product/".concat(item.productId, "?").concat(searchParams));
41
- } else {
42
- window.open("/project-product/".concat(item.productId, "?").concat(searchParams));
43
- }
44
- }
45
- };
46
19
  return /*#__PURE__*/React.createElement("div", {
47
20
  className: classNames(styles.knowledge, item.isDelete === 1 ? styles.resource_deactive : isActive ? styles.active : ''),
48
- onClick: handleClick
21
+ onClick: function onClick() {
22
+ return handleCurrentTrace === null || handleCurrentTrace === void 0 ? void 0 : handleCurrentTrace(item);
23
+ }
49
24
  }, /*#__PURE__*/React.createElement("img", {
50
25
  alt: t('trace.document.coverAlt'),
51
26
  className: styles.img,
52
27
  src: documentConstants[item.suffix] || documentConstants.default
53
28
  }), /*#__PURE__*/React.createElement("div", {
54
29
  className: styles.description
55
- }, /*#__PURE__*/React.createElement(Tooltip, {
56
- content: item.name
57
30
  }, /*#__PURE__*/React.createElement("div", {
58
31
  className: styles.text
59
- }, item.name)), /*#__PURE__*/React.createElement("div", {
32
+ }, item.name), /*#__PURE__*/React.createElement("div", {
60
33
  className: styles.timeTrace
61
34
  }, "".concat(item.suffix, " | ").concat(item.sizeUnit)), item.isDelete === 1 && /*#__PURE__*/React.createElement("div", {
62
35
  className: styles.knowledge_trace_deactive
@@ -65,7 +38,8 @@ var FileItem = function FileItem(_ref) {
65
38
  var DocumentList = function DocumentList(_ref2) {
66
39
  var list = _ref2.list,
67
40
  _ref2$hiddenTitle = _ref2.hiddenTitle,
68
- hiddenTitle = _ref2$hiddenTitle === void 0 ? false : _ref2$hiddenTitle;
41
+ hiddenTitle = _ref2$hiddenTitle === void 0 ? false : _ref2$hiddenTitle,
42
+ handleCurrentTrace = _ref2.handleCurrentTrace;
69
43
  var _useTranslation2 = useTranslation(),
70
44
  t = _useTranslation2.t;
71
45
  return /*#__PURE__*/React.createElement("div", {
@@ -77,7 +51,8 @@ var DocumentList = function DocumentList(_ref2) {
77
51
  })), list.map(function (item) {
78
52
  return /*#__PURE__*/React.createElement(FileItem, {
79
53
  item: item,
80
- key: item.id
54
+ key: item.id,
55
+ handleCurrentTrace: handleCurrentTrace
81
56
  });
82
57
  }));
83
58
  };
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export declare type KonwledgeType = 'video' | 'document' | 'product';
2
+ export declare type KonwledgeType = 'video' | 'document' | 'product' | 'information';
3
3
  export interface KonwledgeTraceState {
4
4
  type: KonwledgeType;
5
5
  resources: {
@@ -51,6 +51,245 @@
51
51
  display: none;
52
52
  }
53
53
 
54
+ .tryWatchBody {
55
+ position: relative;
56
+ display: flex;
57
+ flex-direction: column;
58
+ gap: 20px;
59
+ width: 100%;
60
+ height: 100%;
61
+ }
62
+ .tryWatchBody .playerContainer {
63
+ flex: 1;
64
+ min-height: 0;
65
+ overflow: hidden;
66
+ }
67
+ .tryWatchBody .tryFullBtnContainer {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: space-between;
71
+ gap: 16px;
72
+ width: 100%;
73
+ }
74
+ .tryWatchBody .tryFullBtnContainer .tips {
75
+ flex: 1;
76
+ min-width: 0;
77
+ font-family: "PingFang SC";
78
+ font-size: 14px;
79
+ font-weight: 400;
80
+ line-height: 150%;
81
+ color: var(--theme-neutral, #4C5A70);
82
+ }
83
+ .tryWatchBody .tryFullBtnContainer .tryFullBtn {
84
+ flex-shrink: 0;
85
+ box-sizing: border-box;
86
+ width: 117px;
87
+ height: 40px;
88
+ padding: 0;
89
+ margin: 0;
90
+ border: none;
91
+ border-radius: 20px;
92
+ background: var(--theme-primary-pale, #F0F8FF);
93
+ font-family: "PingFang SC";
94
+ font-size: 16px;
95
+ font-weight: 500;
96
+ line-height: 16px;
97
+ color: var(--theme-primary, #4086FF);
98
+ cursor: pointer;
99
+ }
100
+ .tryWatchBody .tryFullBtnContainer .tryFullBtn:hover {
101
+ color: var(--theme-primary, #4086FF);
102
+ }
103
+
104
+ .playerWrap {
105
+ position: relative;
106
+ width: 100%;
107
+ height: 422px;
108
+ background: #000;
109
+ }
110
+
111
+ .playerBox {
112
+ width: 100%;
113
+ height: 100%;
114
+ }
115
+
116
+ .spinWrap {
117
+ position: absolute;
118
+ inset: 0;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ }
123
+
124
+ .docFrame {
125
+ width: 100%;
126
+ height: 100%;
127
+ border-radius: 8px;
128
+ background: #fff;
129
+ }
130
+
131
+ .docLoading {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ height: 100%;
136
+ background: var(--theme-subtleNeutral, #F5F7FA);
137
+ border-radius: 8px;
138
+ }
139
+
140
+ .unsupportedOverlay {
141
+ position: absolute;
142
+ inset: 0;
143
+ z-index: 2;
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ background: #fff;
148
+ }
149
+
150
+ .unsupportedInner {
151
+ display: flex;
152
+ flex-direction: column;
153
+ align-items: center;
154
+ gap: 16px;
155
+ }
156
+
157
+ .unsupportedIcon {
158
+ width: 80px;
159
+ height: 80px;
160
+ }
161
+
162
+ .unsupportedTips {
163
+ font-family: "PingFang SC";
164
+ font-size: 16px;
165
+ font-weight: 400;
166
+ line-height: 150%;
167
+ color: #626262;
168
+ text-align: center;
169
+ white-space: pre-wrap;
170
+ }
171
+
172
+ .unsupportedBtns {
173
+ display: flex;
174
+ align-items: center;
175
+ gap: 17px;
176
+ }
177
+
178
+ .unsupportedBtn {
179
+ box-sizing: border-box;
180
+ width: 117px;
181
+ height: 40px;
182
+ padding: 0;
183
+ margin: 0;
184
+ border: none;
185
+ border-radius: 20px;
186
+ background: var(--theme-primary-pale, #F0F8FF);
187
+ font-size: 16px;
188
+ font-weight: 500;
189
+ line-height: 16px;
190
+ color: var(--theme-primary, #4086FF) !important;
191
+ cursor: pointer;
192
+ }
193
+ .unsupportedBtn:hover {
194
+ color: var(--theme-primary, #4086FF);
195
+ background: var(--theme-primary-pale, #F0F8FF) !important;
196
+ }
197
+
198
+ .newsContent {
199
+ position: relative;
200
+ width: 100%;
201
+ height: 422px;
202
+ overflow: auto;
203
+ }
204
+ .newsContent .newsTitle {
205
+ font-size: 24px;
206
+ font-weight: 500;
207
+ line-height: 1.5;
208
+ color: var(--theme-deepNeutral, #221713);
209
+ margin-bottom: 16px;
210
+ }
211
+ .newsContent .newsSubTitle {
212
+ color: var(--theme-dustyNeutral, #878786);
213
+ margin-bottom: 16px;
214
+ font-size: 16px;
215
+ }
216
+ .newsContent .newsBodyContainer {
217
+ position: relative;
218
+ }
219
+ .newsContent .newsBody {
220
+ padding: 4px;
221
+ line-height: 1.6;
222
+ font-family: "PingFang SC";
223
+ font-size: 14px;
224
+ color: var(--theme-deepNeutral, #2E394C);
225
+ }
226
+ .newsContent .newsBody :global(img) {
227
+ max-width: 100%;
228
+ height: auto;
229
+ }
230
+ .newsContent .newsMask {
231
+ position: absolute;
232
+ left: 0;
233
+ right: 0;
234
+ bottom: 0;
235
+ width: 100%;
236
+ height: 70%;
237
+ display: flex;
238
+ align-items: flex-start;
239
+ justify-content: center;
240
+ padding-top: 40px;
241
+ background: rgba(255, 255, 255, 0.5);
242
+ backdrop-filter: blur(10px);
243
+ pointer-events: none;
244
+ }
245
+ .newsContent .newsMaskText {
246
+ font-family: "PingFang SC";
247
+ font-size: 16px;
248
+ font-weight: 600;
249
+ line-height: 1em;
250
+ color: var(--theme-primary, #4086FF);
251
+ text-align: center;
252
+ }
253
+ .newsContent .lawTable {
254
+ width: 100%;
255
+ margin-bottom: 16px;
256
+ display: grid;
257
+ grid-template-columns: repeat(3, 1fr);
258
+ background: var(--theme-subtleNeutral, #F7F7F7);
259
+ border-radius: 8px;
260
+ overflow: hidden;
261
+ }
262
+ .newsContent .lawTable .column {
263
+ display: flex;
264
+ flex-direction: column;
265
+ min-width: 0;
266
+ overflow: hidden;
267
+ }
268
+ .newsContent .lawTable .row {
269
+ display: flex;
270
+ align-items: center;
271
+ height: 44px;
272
+ padding: 0 20px;
273
+ font-size: 14px;
274
+ line-height: 1.4;
275
+ letter-spacing: 0.057em;
276
+ min-width: 0;
277
+ }
278
+ .newsContent .lawTable .row .label {
279
+ color: var(--theme-neutral, #626262);
280
+ white-space: nowrap;
281
+ flex-shrink: 0;
282
+ }
283
+ .newsContent .lawTable .row .value {
284
+ color: var(--theme-deepNeutral, #221713);
285
+ overflow: hidden;
286
+ text-overflow: ellipsis;
287
+ white-space: nowrap;
288
+ flex: 1;
289
+ min-width: 0;
290
+ cursor: pointer;
291
+ }
292
+
54
293
  .knowledgeList {
55
294
  display: flex;
56
295
  flex-direction: column;
@@ -79,9 +318,8 @@
79
318
  }
80
319
  .knowledgeList .knowledge {
81
320
  background-color: var(--theme-subtleNeutral, #F5F7FA);
82
- border-radius: 12px;
321
+ border-radius: 16px;
83
322
  display: flex;
84
- align-items: center;
85
323
  gap: 10px;
86
324
  padding: 10px 16px;
87
325
  position: relative;
@@ -119,12 +357,6 @@
119
357
  gap: 5px;
120
358
  }
121
359
  .knowledgeList .knowledge .description .text {
122
- text-overflow: ellipsis;
123
- display: -webkit-box;
124
- -webkit-line-clamp: 2;
125
- -webkit-box-orient: vertical;
126
- overflow: hidden;
127
- width: 200px;
128
360
  font-family: "PingFang SC";
129
361
  font-weight: 500;
130
362
  font-size: 14px;
@@ -264,7 +496,7 @@
264
496
  width: 360px;
265
497
  max-height: 388px;
266
498
  padding: 16px 12px 0px 12px;
267
- border-radius: 16px;
499
+ border-radius: 20px;
268
500
  border: 1px solid var(--theme-lightNeutral, #E9EBF2);
269
501
  background: #FFF;
270
502
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.15);
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import type { IInformation } from '../../interfaces/knowledgeTrace';
3
+ declare const InformationList: React.FC<{
4
+ list: IInformation[];
5
+ handleCurrentTrace?: (trace: IInformation) => void;
6
+ }>;
7
+ export default InformationList;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import styles from "./index.module.css";
3
+ import { knowledgeConstants } from "../../constants";
4
+ var InformationList = function InformationList(_ref) {
5
+ var list = _ref.list,
6
+ handleCurrentTrace = _ref.handleCurrentTrace;
7
+ return /*#__PURE__*/React.createElement("div", {
8
+ className: styles.knowledgeList
9
+ }, list.map(function (item) {
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ className: styles.knowledge,
12
+ onClick: function onClick() {
13
+ return handleCurrentTrace === null || handleCurrentTrace === void 0 ? void 0 : handleCurrentTrace(item);
14
+ }
15
+ }, /*#__PURE__*/React.createElement("img", {
16
+ className: styles.img,
17
+ src: knowledgeConstants.INFORMATION_ICON_ADRESS
18
+ }), /*#__PURE__*/React.createElement("div", {
19
+ className: styles.description
20
+ }, /*#__PURE__*/React.createElement("div", {
21
+ className: styles.text
22
+ }, item.title)));
23
+ }));
24
+ };
25
+ export default InformationList;
@@ -130,6 +130,8 @@ export interface ITeachingModuleResource {
130
130
  isJoinClass: number;
131
131
  isDelete: number;
132
132
  isActive?: boolean;
133
+ resourceMountType?: string;
134
+ outlineId?: number;
133
135
  }
134
136
  export interface IVideoResource {
135
137
  id?: number;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { IInformation, IVideoResource, ITeachingModuleResource } from '../../interfaces/knowledgeTrace';
3
+ interface TryWatchProps {
4
+ item: IVideoResource & IInformation & ITeachingModuleResource;
5
+ type: 'video' | 'document' | 'information' | 'product';
6
+ visible: boolean;
7
+ onCancel: () => void;
8
+ onCurrentTraceVideoClick?: (startedAtSecond?: string) => void;
9
+ }
10
+ declare const TryWatch: ({ item, type, visible, onCancel, onCurrentTraceVideoClick }: TryWatchProps) => React.JSX.Element;
11
+ export default TryWatch;