yootd 0.0.20 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Preview/index.scss +35 -35
- package/dist/Preview/types/type.d.ts +22 -22
- package/dist/department/index.d.ts +3 -0
- package/dist/department/index.js +51 -0
- package/dist/department/types/types.d.ts +23 -0
- package/dist/empty/index.js +2 -2
- package/dist/index.d.ts +6 -0
- package/dist/index.js +3 -0
- package/dist/job-title/index.d.ts +3 -0
- package/dist/job-title/index.js +37 -0
- package/dist/job-title/types/types.d.ts +17 -0
- package/dist/role/index.d.ts +3 -0
- package/dist/role/index.js +37 -0
- package/dist/role/types/types.d.ts +22 -0
- package/dist/school/types/types.d.ts +85 -85
- package/dist/video-player/index.js +20 -20
- package/package.json +1 -1
package/dist/Preview/index.scss
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
.yot-preview {
|
2
|
-
&-controls {
|
3
|
-
display: flex;
|
4
|
-
justify-content: center;
|
5
|
-
align-items: center;
|
6
|
-
z-index: 100;
|
7
|
-
position: absolute;
|
8
|
-
bottom: 10px;
|
9
|
-
right: 10px;
|
10
|
-
background-color: #ffffff;
|
11
|
-
border-radius: 8px;
|
12
|
-
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.16);
|
13
|
-
.ant-btn.css-var-yootd.ant-btn-default.ant-btn-color-default.ant-btn-variant-outlined {
|
14
|
-
background-color: transparent;
|
15
|
-
border: none;
|
16
|
-
&:hover .ant-btn-icon svg path {
|
17
|
-
fill: var(--ant-color-primary);
|
18
|
-
}
|
19
|
-
&:hover .ant-btn-icon svg #rect-stroke {
|
20
|
-
stroke: var(--ant-color-primary);
|
21
|
-
}
|
22
|
-
&:hover .ant-btn-icon svg #reset-icon-rect {
|
23
|
-
fill: var(--ant-color-primary);
|
24
|
-
}
|
25
|
-
}
|
26
|
-
&--zoom {
|
27
|
-
width: 64px;
|
28
|
-
background-color: transparent;
|
29
|
-
border: none;
|
30
|
-
}
|
31
|
-
}
|
32
|
-
.react-flow__panel.center {
|
33
|
-
transform: translateX(-63%);
|
34
|
-
}
|
35
|
-
}
|
1
|
+
.yot-preview {
|
2
|
+
&-controls {
|
3
|
+
display: flex;
|
4
|
+
justify-content: center;
|
5
|
+
align-items: center;
|
6
|
+
z-index: 100;
|
7
|
+
position: absolute;
|
8
|
+
bottom: 10px;
|
9
|
+
right: 10px;
|
10
|
+
background-color: #ffffff;
|
11
|
+
border-radius: 8px;
|
12
|
+
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.16);
|
13
|
+
.ant-btn.css-var-yootd.ant-btn-default.ant-btn-color-default.ant-btn-variant-outlined {
|
14
|
+
background-color: transparent;
|
15
|
+
border: none;
|
16
|
+
&:hover .ant-btn-icon svg path {
|
17
|
+
fill: var(--ant-color-primary);
|
18
|
+
}
|
19
|
+
&:hover .ant-btn-icon svg #rect-stroke {
|
20
|
+
stroke: var(--ant-color-primary);
|
21
|
+
}
|
22
|
+
&:hover .ant-btn-icon svg #reset-icon-rect {
|
23
|
+
fill: var(--ant-color-primary);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
&--zoom {
|
27
|
+
width: 64px;
|
28
|
+
background-color: transparent;
|
29
|
+
border: none;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
.react-flow__panel.center {
|
33
|
+
transform: translateX(-63%);
|
34
|
+
}
|
35
|
+
}
|
@@ -1,22 +1,22 @@
|
|
1
|
-
export interface PrevewProps {
|
2
|
-
controls?: boolean; // 是否显示右下角的放大缩小组件
|
3
|
-
defaultZoom?: number; // 初始化放大倍数
|
4
|
-
maxZoom?: number; // 最大放大倍数
|
5
|
-
minZoom?: number; // 最小放大倍数
|
6
|
-
panOnDrag?: boolean; // 是否可以拖拽
|
7
|
-
zoomOnScroll?: boolean; // 是否可以滚动
|
8
|
-
modes?: ['phone', 'web'] | ['phone'] | ['web']; // 预览模式
|
9
|
-
fitView?: boolean; // 是否自动适应视图
|
10
|
-
content?: ReactNode; // 数据
|
11
|
-
width?: number | string; // 宽度
|
12
|
-
height?: number | string; // 高度
|
13
|
-
style?: React.CSSProperties; // 样式
|
14
|
-
}
|
15
|
-
|
16
|
-
export interface TopPreviewProps {
|
17
|
-
mode: string;
|
18
|
-
onChange: (value: string) => void;
|
19
|
-
}
|
20
|
-
export interface ControlsProps {
|
21
|
-
defaultZoom?: number; // 初始化放大倍数
|
22
|
-
}
|
1
|
+
export interface PrevewProps {
|
2
|
+
controls?: boolean; // 是否显示右下角的放大缩小组件
|
3
|
+
defaultZoom?: number; // 初始化放大倍数
|
4
|
+
maxZoom?: number; // 最大放大倍数
|
5
|
+
minZoom?: number; // 最小放大倍数
|
6
|
+
panOnDrag?: boolean; // 是否可以拖拽
|
7
|
+
zoomOnScroll?: boolean; // 是否可以滚动
|
8
|
+
modes?: ['phone', 'web'] | ['phone'] | ['web']; // 预览模式
|
9
|
+
fitView?: boolean; // 是否自动适应视图
|
10
|
+
content?: ReactNode; // 数据
|
11
|
+
width?: number | string; // 宽度
|
12
|
+
height?: number | string; // 高度
|
13
|
+
style?: React.CSSProperties; // 样式
|
14
|
+
}
|
15
|
+
|
16
|
+
export interface TopPreviewProps {
|
17
|
+
mode: string;
|
18
|
+
onChange: (value: string) => void;
|
19
|
+
}
|
20
|
+
export interface ControlsProps {
|
21
|
+
defaultZoom?: number; // 初始化放大倍数
|
22
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
|
+
function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
4
|
+
import React, { useMemo } from 'react';
|
5
|
+
import { TreeSelect } from "./..";
|
6
|
+
import { useRequest } from "../hooks/useRequest";
|
7
|
+
export var Department = function Department(_ref) {
|
8
|
+
var rest = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
|
9
|
+
var request = useRequest();
|
10
|
+
// 查询所有部门
|
11
|
+
var _useQuery = useQuery({
|
12
|
+
queryKey: ['departmentData'],
|
13
|
+
queryFn: function queryFn() {
|
14
|
+
return request('/v1/depts', {
|
15
|
+
params: {
|
16
|
+
as_tree: true,
|
17
|
+
has_grade: false
|
18
|
+
}
|
19
|
+
});
|
20
|
+
}
|
21
|
+
}),
|
22
|
+
departmentData = _useQuery.data;
|
23
|
+
console.log('departmentData', departmentData);
|
24
|
+
// 递归处理树数据
|
25
|
+
var recursionTreeData = function recursionTreeData(data) {
|
26
|
+
return data === null || data === void 0 ? void 0 : data.map(function (item) {
|
27
|
+
return {
|
28
|
+
title: item.deptName,
|
29
|
+
value: item.deptId,
|
30
|
+
children: item.children != null ? recursionTreeData(item.children) : undefined
|
31
|
+
};
|
32
|
+
});
|
33
|
+
};
|
34
|
+
// 将部门数据处理成树数据
|
35
|
+
var deptTreeData = useMemo(function () {
|
36
|
+
if (departmentData !== null && departmentData !== void 0 && departmentData.content) {
|
37
|
+
return recursionTreeData(departmentData === null || departmentData === void 0 ? void 0 : departmentData.content);
|
38
|
+
}
|
39
|
+
return [];
|
40
|
+
}, [departmentData]);
|
41
|
+
// 筛选数据
|
42
|
+
var filterTreeNode = function filterTreeNode(inputValue, treeNode) {
|
43
|
+
var _treeNode$title;
|
44
|
+
return treeNode === null || treeNode === void 0 || (_treeNode$title = treeNode.title) === null || _treeNode$title === void 0 ? void 0 : _treeNode$title.includes(inputValue);
|
45
|
+
};
|
46
|
+
return /*#__PURE__*/React.createElement(TreeSelect, _extends({}, rest, {
|
47
|
+
showSearch: true,
|
48
|
+
treeData: deptTreeData,
|
49
|
+
filterTreeNode: filterTreeNode
|
50
|
+
}));
|
51
|
+
};
|
@@ -0,0 +1,23 @@
|
|
1
|
+
export interface PageData<T> {
|
2
|
+
content: T[];
|
3
|
+
page: {
|
4
|
+
number: number;
|
5
|
+
size: number;
|
6
|
+
totalElements: number;
|
7
|
+
totalPages: number;
|
8
|
+
};
|
9
|
+
}
|
10
|
+
// 查询部门返回的数据类型
|
11
|
+
export interface IDepartmentItem {
|
12
|
+
deptId: number; // 部门ID
|
13
|
+
deptName: string; // 部门名称
|
14
|
+
deptLevel: number; // 部门级别(1,2,3,4...)
|
15
|
+
children?: DeptListResponse[]; // 子部门
|
16
|
+
}
|
17
|
+
// 树组件填充的数据接口
|
18
|
+
export interface ITreeData {
|
19
|
+
title: string;
|
20
|
+
value: number;
|
21
|
+
children?: ITreeData[];
|
22
|
+
}
|
23
|
+
export type DepartmentProps = TreeSelectProps;
|
package/dist/empty/index.js
CHANGED
@@ -61,7 +61,7 @@ var EmptyComponent = function EmptyComponent(_ref) {
|
|
61
61
|
}, "\u7F51\u7EDC\u52A0\u8F7D\u5931\u8D25"), /*#__PURE__*/React.createElement("div", {
|
62
62
|
className: "".concat(mb.b('description').b('content').e('text'))
|
63
63
|
}, "\u7F51\u7EDC\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5")),
|
64
|
-
|
64
|
+
notFound: /*#__PURE__*/React.createElement("div", {
|
65
65
|
className: "".concat(mb.b('description').b('content'))
|
66
66
|
}, /*#__PURE__*/React.createElement("div", {
|
67
67
|
className: "".concat(mb.b('description').b('content').e('title'))
|
@@ -89,7 +89,7 @@ var EmptyComponent = function EmptyComponent(_ref) {
|
|
89
89
|
}, "\u6682\u65E0\u6536\u85CF"), /*#__PURE__*/React.createElement("div", {
|
90
90
|
className: "".concat(mb.b('description').b('content').e('text'))
|
91
91
|
}, "\u6682\u65E0\u6536\u85CF\uFF0C\u8BF7\u8FD4\u56DE\u9996\u9875")),
|
92
|
-
|
92
|
+
noSearchData: /*#__PURE__*/React.createElement("div", {
|
93
93
|
className: "".concat(mb.b('description').b('content'))
|
94
94
|
}, /*#__PURE__*/React.createElement("div", {
|
95
95
|
className: "".concat(mb.b('description').b('content').e('title'))
|
package/dist/index.d.ts
CHANGED
@@ -18,6 +18,12 @@ export { Divider } from './divider';
|
|
18
18
|
export type { DividerProps } from './divider';
|
19
19
|
export { Dropdown } from './dropdown';
|
20
20
|
export type { DropdownProps } from './dropdown';
|
21
|
+
export { Department } from './department';
|
22
|
+
export type { DepartmentProps } from './department/types/types';
|
23
|
+
export { JobTitle } from './job-title';
|
24
|
+
export type { JobTitleProps } from './job-title/types/types';
|
25
|
+
export { Role } from './role';
|
26
|
+
export type { RoleProps } from './role/types/types';
|
21
27
|
export { Flex } from './flex';
|
22
28
|
export type { FlexProps } from './flex';
|
23
29
|
export { FloatButton } from './float-button';
|
package/dist/index.js
CHANGED
@@ -9,6 +9,9 @@ export { Cascader } from "./cascader";
|
|
9
9
|
export { Courses } from "./courses";
|
10
10
|
export { Divider } from "./divider";
|
11
11
|
export { Dropdown } from "./dropdown";
|
12
|
+
export { Department } from "./department";
|
13
|
+
export { JobTitle } from "./job-title";
|
14
|
+
export { Role } from "./role";
|
12
15
|
export { Flex } from "./flex";
|
13
16
|
export { FloatButton } from "./float-button";
|
14
17
|
export { GroupTitle } from "./group-title";
|
@@ -0,0 +1,37 @@
|
|
1
|
+
var _excluded = ["showSearch"];
|
2
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
4
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
5
|
+
import { useQuery } from '@tanstack/react-query';
|
6
|
+
import React, { useMemo } from 'react';
|
7
|
+
import { Select } from "./..";
|
8
|
+
import { useRequest } from "../hooks/useRequest";
|
9
|
+
export var JobTitle = function JobTitle(_ref) {
|
10
|
+
var _ref$showSearch = _ref.showSearch,
|
11
|
+
showSearch = _ref$showSearch === void 0 ? true : _ref$showSearch,
|
12
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
13
|
+
var request = useRequest();
|
14
|
+
// 查询所有职务
|
15
|
+
var _useQuery = useQuery({
|
16
|
+
queryKey: ['jobTitleData'],
|
17
|
+
queryFn: function queryFn() {
|
18
|
+
return request('/v1/titles/all');
|
19
|
+
}
|
20
|
+
}),
|
21
|
+
jobTitleData = _useQuery.data;
|
22
|
+
// 将职务数据处理成下拉框
|
23
|
+
var allJobTitleOptions = useMemo(function () {
|
24
|
+
var _jobTitleData$content;
|
25
|
+
return jobTitleData === null || jobTitleData === void 0 || (_jobTitleData$content = jobTitleData.content) === null || _jobTitleData$content === void 0 ? void 0 : _jobTitleData$content.map(function (item) {
|
26
|
+
return {
|
27
|
+
label: item.titleName,
|
28
|
+
value: item.titleId
|
29
|
+
};
|
30
|
+
});
|
31
|
+
}, [jobTitleData]);
|
32
|
+
return /*#__PURE__*/React.createElement(Select, _extends({
|
33
|
+
options: allJobTitleOptions,
|
34
|
+
showSearch: showSearch,
|
35
|
+
optionFilterProp: "label"
|
36
|
+
}, rest));
|
37
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { SelectProps } from 'yootd';
|
2
|
+
|
3
|
+
export interface PageData<T> {
|
4
|
+
content: T[];
|
5
|
+
page: {
|
6
|
+
number: number;
|
7
|
+
size: number;
|
8
|
+
totalElements: number;
|
9
|
+
totalPages: number;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
// 查询职务返回的数据类型
|
13
|
+
export interface IjobTitleItem {
|
14
|
+
titleId: number;
|
15
|
+
titleName: string;
|
16
|
+
}
|
17
|
+
export type JobTitleProps = SelectProps;
|
@@ -0,0 +1,37 @@
|
|
1
|
+
var _excluded = ["showSearch"];
|
2
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
3
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
4
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
5
|
+
import { useQuery } from '@tanstack/react-query';
|
6
|
+
import React, { useMemo } from 'react';
|
7
|
+
import { Select } from "./..";
|
8
|
+
import { useRequest } from "../hooks/useRequest";
|
9
|
+
export var Role = function Role(_ref) {
|
10
|
+
var _ref$showSearch = _ref.showSearch,
|
11
|
+
showSearch = _ref$showSearch === void 0 ? true : _ref$showSearch,
|
12
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
13
|
+
var request = useRequest();
|
14
|
+
// 查询所有角色
|
15
|
+
var _useQuery = useQuery({
|
16
|
+
queryKey: ['roleData'],
|
17
|
+
queryFn: function queryFn() {
|
18
|
+
return request('/v1/roles/list');
|
19
|
+
}
|
20
|
+
}),
|
21
|
+
roleData = _useQuery.data;
|
22
|
+
// 将职务数据处理成下拉框
|
23
|
+
var allRoleOptions = useMemo(function () {
|
24
|
+
var _roleData$content;
|
25
|
+
return roleData === null || roleData === void 0 || (_roleData$content = roleData.content) === null || _roleData$content === void 0 ? void 0 : _roleData$content.map(function (item) {
|
26
|
+
return {
|
27
|
+
label: item.roleName,
|
28
|
+
value: item.roleId
|
29
|
+
};
|
30
|
+
});
|
31
|
+
}, [roleData]);
|
32
|
+
return /*#__PURE__*/React.createElement(Select, _extends({
|
33
|
+
options: allRoleOptions,
|
34
|
+
showSearch: showSearch,
|
35
|
+
optionFilterProp: "label"
|
36
|
+
}, rest));
|
37
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { SelectProps } from 'yootd';
|
2
|
+
|
3
|
+
export interface PageData<T> {
|
4
|
+
content: T[];
|
5
|
+
page: {
|
6
|
+
number: number;
|
7
|
+
size: number;
|
8
|
+
totalElements: number;
|
9
|
+
totalPages: number;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
// 查询职务返回的数据类型
|
13
|
+
export interface IjobTitleItem {
|
14
|
+
titleId: number;
|
15
|
+
titleName: string;
|
16
|
+
}
|
17
|
+
// 查询角色返回的数据类型
|
18
|
+
export interface IRoleItem {
|
19
|
+
roleId: number;
|
20
|
+
roleName: string;
|
21
|
+
}
|
22
|
+
export type RoleProps = SelectProps;
|
@@ -1,85 +1,85 @@
|
|
1
|
-
export interface PageData<T> {
|
2
|
-
content: T[];
|
3
|
-
page: {
|
4
|
-
number: number;
|
5
|
-
size: number;
|
6
|
-
totalElements: number;
|
7
|
-
totalPages: number;
|
8
|
-
};
|
9
|
-
}
|
10
|
-
// 查询班级参数
|
11
|
-
export interface IQueryClassParams {
|
12
|
-
college_id?: number;
|
13
|
-
major_id?: number;
|
14
|
-
grade_id?: number;
|
15
|
-
}
|
16
|
-
// 查询年级返回的数据类型
|
17
|
-
export interface gradeItem {
|
18
|
-
deptId: number; // 年级ID
|
19
|
-
deptName: string; // 年级别名(如一年级)
|
20
|
-
deptNameShort: string; // 年级名称(如2023级)
|
21
|
-
}
|
22
|
-
// 查询系部和专业返回的数据类型
|
23
|
-
export interface schoolItem {
|
24
|
-
majorId: number; // 学院或者专业ID
|
25
|
-
majorType: number; // 类型:1表示学院2表示专业
|
26
|
-
majorName: string; // 学院或专业名称
|
27
|
-
majorCode?: string; // 学院或专业编码
|
28
|
-
children?: Array<{
|
29
|
-
majorId: number; // 学院或者专业ID
|
30
|
-
majorType: number; // 类型:1表示学院2表示专业
|
31
|
-
majorName: string; // 学院或专业名称
|
32
|
-
majorCode?: string; // 学院或专业编码
|
33
|
-
}>;
|
34
|
-
}
|
35
|
-
export interface classItem {
|
36
|
-
classId: number; // 班级标识
|
37
|
-
gradeId: number; // 年级
|
38
|
-
gradeName: string; // 年级名称
|
39
|
-
className: string; // 班级名称
|
40
|
-
classCode: string; // 班级编号通常2020届在这里表达
|
41
|
-
classPhase: number; // 0普通小学班1普通中学班2职业3大学某专业
|
42
|
-
classHeadteacher?: number; // 班主任
|
43
|
-
classAdviser?: number; // 辅导员
|
44
|
-
classSize?: number; // 学生人数
|
45
|
-
classFaculty?: number; // 院系
|
46
|
-
classLocation?: number; // 位置
|
47
|
-
classCourseNum?: number; // 课程数
|
48
|
-
classMotto?: string; // 班级宣言
|
49
|
-
classEmblem?: string; // 班徽
|
50
|
-
classDesc: string; // 班级描述
|
51
|
-
}
|
52
|
-
// 将系部专业处理成大对象形式的数据类型
|
53
|
-
export interface collegeAndMajorItem {
|
54
|
-
[key: number]: { label: string; value: number }[];
|
55
|
-
}
|
56
|
-
// 接收的onChange参数
|
57
|
-
export interface onChangeParams {
|
58
|
-
collegeId?: number;
|
59
|
-
majorId?: number;
|
60
|
-
}
|
61
|
-
// 年级班级树接口返回的数据类型
|
62
|
-
export interface gradeClassItem {
|
63
|
-
deptId: number;
|
64
|
-
deptName: string;
|
65
|
-
classes: {
|
66
|
-
classId: number;
|
67
|
-
className: string;
|
68
|
-
}[];
|
69
|
-
}
|
70
|
-
type SchoolProps = {
|
71
|
-
type?:
|
72
|
-
| 'collegeMajor'
|
73
|
-
| 'gradeClass'
|
74
|
-
| 'college'
|
75
|
-
| 'major'
|
76
|
-
| 'grade'
|
77
|
-
| 'class';
|
78
|
-
multiple?: boolean;
|
79
|
-
style?: React.CSSProperties;
|
80
|
-
showSearch?: boolean;
|
81
|
-
value?: Record<string, number>;
|
82
|
-
onChange?: (record: Record<string, number | undefined>) => void;
|
83
|
-
allowClear?: boolean;
|
84
|
-
placeholder?: string[];
|
85
|
-
};
|
1
|
+
export interface PageData<T> {
|
2
|
+
content: T[];
|
3
|
+
page: {
|
4
|
+
number: number;
|
5
|
+
size: number;
|
6
|
+
totalElements: number;
|
7
|
+
totalPages: number;
|
8
|
+
};
|
9
|
+
}
|
10
|
+
// 查询班级参数
|
11
|
+
export interface IQueryClassParams {
|
12
|
+
college_id?: number;
|
13
|
+
major_id?: number;
|
14
|
+
grade_id?: number;
|
15
|
+
}
|
16
|
+
// 查询年级返回的数据类型
|
17
|
+
export interface gradeItem {
|
18
|
+
deptId: number; // 年级ID
|
19
|
+
deptName: string; // 年级别名(如一年级)
|
20
|
+
deptNameShort: string; // 年级名称(如2023级)
|
21
|
+
}
|
22
|
+
// 查询系部和专业返回的数据类型
|
23
|
+
export interface schoolItem {
|
24
|
+
majorId: number; // 学院或者专业ID
|
25
|
+
majorType: number; // 类型:1表示学院2表示专业
|
26
|
+
majorName: string; // 学院或专业名称
|
27
|
+
majorCode?: string; // 学院或专业编码
|
28
|
+
children?: Array<{
|
29
|
+
majorId: number; // 学院或者专业ID
|
30
|
+
majorType: number; // 类型:1表示学院2表示专业
|
31
|
+
majorName: string; // 学院或专业名称
|
32
|
+
majorCode?: string; // 学院或专业编码
|
33
|
+
}>;
|
34
|
+
}
|
35
|
+
export interface classItem {
|
36
|
+
classId: number; // 班级标识
|
37
|
+
gradeId: number; // 年级
|
38
|
+
gradeName: string; // 年级名称
|
39
|
+
className: string; // 班级名称
|
40
|
+
classCode: string; // 班级编号通常2020届在这里表达
|
41
|
+
classPhase: number; // 0普通小学班1普通中学班2职业3大学某专业
|
42
|
+
classHeadteacher?: number; // 班主任
|
43
|
+
classAdviser?: number; // 辅导员
|
44
|
+
classSize?: number; // 学生人数
|
45
|
+
classFaculty?: number; // 院系
|
46
|
+
classLocation?: number; // 位置
|
47
|
+
classCourseNum?: number; // 课程数
|
48
|
+
classMotto?: string; // 班级宣言
|
49
|
+
classEmblem?: string; // 班徽
|
50
|
+
classDesc: string; // 班级描述
|
51
|
+
}
|
52
|
+
// 将系部专业处理成大对象形式的数据类型
|
53
|
+
export interface collegeAndMajorItem {
|
54
|
+
[key: number]: { label: string; value: number }[];
|
55
|
+
}
|
56
|
+
// 接收的onChange参数
|
57
|
+
export interface onChangeParams {
|
58
|
+
collegeId?: number;
|
59
|
+
majorId?: number;
|
60
|
+
}
|
61
|
+
// 年级班级树接口返回的数据类型
|
62
|
+
export interface gradeClassItem {
|
63
|
+
deptId: number;
|
64
|
+
deptName: string;
|
65
|
+
classes: {
|
66
|
+
classId: number;
|
67
|
+
className: string;
|
68
|
+
}[];
|
69
|
+
}
|
70
|
+
type SchoolProps = {
|
71
|
+
type?:
|
72
|
+
| 'collegeMajor'
|
73
|
+
| 'gradeClass'
|
74
|
+
| 'college'
|
75
|
+
| 'major'
|
76
|
+
| 'grade'
|
77
|
+
| 'class';
|
78
|
+
multiple?: boolean;
|
79
|
+
style?: React.CSSProperties;
|
80
|
+
showSearch?: boolean;
|
81
|
+
value?: Record<string, number>;
|
82
|
+
onChange?: (record: Record<string, number | undefined>) => void;
|
83
|
+
allowClear?: boolean;
|
84
|
+
placeholder?: string[];
|
85
|
+
};
|
@@ -522,26 +522,26 @@ export var VideoPlayer = function VideoPlayer(_ref) {
|
|
522
522
|
useEffect(function () {
|
523
523
|
var handler = null;
|
524
524
|
// let lastTime = Date.now();
|
525
|
-
/* const start = () => {
|
526
|
-
if (
|
527
|
-
!faceFeature.anchor &&
|
528
|
-
!faceFeature.emotion &&
|
529
|
-
!faceFeature.character
|
530
|
-
) {
|
531
|
-
return;
|
532
|
-
}
|
533
|
-
if (lastTime + 1000 <= Date.now()) {
|
534
|
-
lastTime = Date.now();
|
535
|
-
detect()
|
536
|
-
.catch((e) => {
|
537
|
-
console.log("error", e);
|
538
|
-
})
|
539
|
-
.finally(() => {
|
540
|
-
handler = requestAnimationFrame(start);
|
541
|
-
});
|
542
|
-
} else {
|
543
|
-
handler = requestAnimationFrame(start);
|
544
|
-
}
|
525
|
+
/* const start = () => {
|
526
|
+
if (
|
527
|
+
!faceFeature.anchor &&
|
528
|
+
!faceFeature.emotion &&
|
529
|
+
!faceFeature.character
|
530
|
+
) {
|
531
|
+
return;
|
532
|
+
}
|
533
|
+
if (lastTime + 1000 <= Date.now()) {
|
534
|
+
lastTime = Date.now();
|
535
|
+
detect()
|
536
|
+
.catch((e) => {
|
537
|
+
console.log("error", e);
|
538
|
+
})
|
539
|
+
.finally(() => {
|
540
|
+
handler = requestAnimationFrame(start);
|
541
|
+
});
|
542
|
+
} else {
|
543
|
+
handler = requestAnimationFrame(start);
|
544
|
+
}
|
545
545
|
}; */
|
546
546
|
|
547
547
|
var start = function start() {
|