Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xiaomai-cloud-class-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiaomai-cloud-class
xiaomai-cloud-class-web
Commits
0794a910
Commit
0794a910
authored
Jun 25, 2021
by
yuananting
Browse files
Options
Browse Files
Download
Plain Diff
fix:解决合并学院初始化直播课创建时间默认值的分支冲突
parents
82795b18
ad079064
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
841 additions
and
855 deletions
+841
-855
src/bu-components/ChooseMembersModal.jsx
+1
-2
src/bu-components/CopyFileModal.jsx
+1
-1
src/common/js/axios.ts
+1
-6
src/common/lottie/search.json
+2
-0
src/components/LottieIcon.tsx
+4
-2
src/modules/college-manage/EmployeeManage.tsx
+8
-5
src/modules/college-manage/UserManagePage.tsx
+10
-4
src/modules/college-manage/modal/ChooseMembersModal.jsx
+8
-3
src/modules/college-manage/modal/ChooseMembersModal.less
+3
-1
src/modules/course-manage/components/LiveCourseList.jsx
+542
-507
src/modules/plan-manage/components/PlanFilter.jsx
+2
-2
src/modules/root/Header.jsx
+6
-6
src/modules/root/Login.jsx
+107
-5
src/modules/root/Menu.less
+1
-1
src/modules/root/Menu.tsx
+87
-75
src/modules/root/WechatLogin.tsx
+4
-4
src/modules/store-manage/StoreDecorationPage.tsx
+3
-8
src/modules/store-manage/StoreH5DecorationTab.jsx
+9
-4
src/modules/store-manage/StoreWebDecorationTab.jsx
+9
-4
src/modules/teach-tool/components/AnswerDescPage.jsx
+4
-194
src/modules/teach-tool/components/CourseCategoryManage.jsx
+22
-11
src/modules/teach-tool/components/CourseCategoryManage.less
+6
-0
src/modules/teach-tool/examination-manager/Index.tsx
+1
-10
No files found.
src/bu-components/ChooseMembersModal.jsx
View file @
0794a910
...
...
@@ -5,9 +5,8 @@
*/
import
React
from
'react'
;
import
{
Modal
,
Input
,
Table
}
from
'antd'
;
import
{
Modal
,
Input
}
from
'antd'
;
import
Service
from
'@/common/js/service'
;
// import _ from 'underscore';
import
'./ChooseMembersModal.less'
;
import
User
from
'@/common/js/user'
import
{
XMTable
}
from
'@/components'
;
...
...
src/bu-components/CopyFileModal.jsx
View file @
0794a910
...
...
@@ -5,7 +5,7 @@
*/
import
React
from
'react'
;
import
{
Modal
,
Button
,
Breadcrumb
,
Radio
,
message
}
from
'antd'
;
import
{
Modal
,
Button
,
Breadcrumb
,
message
}
from
'antd'
;
import
Service
from
'@/common/js/service'
;
import
{
FILE_TYPE_ICON_MAP
,
DEFAULT_SIZE_UNIT
}
from
"@/domains/resource-disk/constants"
;
import
LottieIcon
from
'@/components/LottieIcon'
;
...
...
src/common/js/axios.ts
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Date: 2020-08-31 09:34:31
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-06-2
1 17:21:17
* @LastEditTime: 2021-06-2
4 19:34:21
* @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
...
...
@@ -88,10 +88,6 @@ class Axios {
if
(
success
||
resultCode
===
0
)
{
return
response
;
}
else
if
(
!
options
.
reject
)
{
// if(code === "NONE_STORE_USER"){
// window.RCHistory.replace('/login');
// return Promise.reject();
// }
message
.
error
(
ResMessage
||
resultMsg
);
}
return
Promise
.
reject
(
response
.
data
);
...
...
@@ -110,7 +106,6 @@ class Axios {
break
;
default
:
message
.
error
(
error
.
message
);
console
.
log
(
'222'
);
break
;
}
return
Promise
.
reject
(
error
.
message
);
...
...
src/common/lottie/search.json
0 → 100644
View file @
0794a910
{
"v"
:
"5.6.10"
,
"fr"
:
25
,
"ip"
:
0
,
"op"
:
25
,
"w"
:
150
,
"h"
:
150
,
"nm"
:
"搜索无结果"
,
"ddd"
:
0
,
"assets"
:[],
"layers"
:[{
"ddd"
:
0
,
"ind"
:
1
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 3”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-70
,
0.5
],[
40
,
0.5
],[
40
,
-0.5
],[
-70
,
-0.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
52.1
,
0.5
],[
70
,
0.5
],[
70
,
-0.5
],[
52.1
,
-0.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 2"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"mm"
,
"mm"
:
1
,
"nm"
:
"合并路径 1"
,
"mn"
:
"ADBE Vector Filter - Merge"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.627450980392
,
0.670587995941
,
0.792156982422
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
70
,
126
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
4
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
2
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 4”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
0
,
"s"
:[
0
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
10
,
"s"
:[
5
]},{
"t"
:
20
,
"s"
:[
0
]}],
"ix"
:
10
},
"p"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.667
,
"y"
:
1
},
"o"
:{
"x"
:
0.333
,
"y"
:
0
},
"t"
:
0
,
"s"
:[
53.25
,
58.75
,
0
],
"to"
:[
0
,
-0.292
,
0
],
"ti"
:[
0
,
0
,
0
]},{
"i"
:{
"x"
:
0.667
,
"y"
:
1
},
"o"
:{
"x"
:
0.333
,
"y"
:
0
},
"t"
:
10
,
"s"
:[
53.25
,
57
,
0
],
"to"
:[
0
,
0
,
0
],
"ti"
:[
0
,
-0.292
,
0
]},{
"t"
:
20
,
"s"
:[
53.25
,
58.75
,
0
]}],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
48.25
,
48.25
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
1.3
,
0.4
],[
1.1
,
-0.6
],[
0.5
,
-1.4
],[
0
,
0
],[
-0.5
,
0.3
],[
-0.8
,
-0.3
],[
-0.3
,
-0.5
],[
0.2
,
-0.7
],[
0.4
,
-0.3
],[
0
,
0
],[
0.4
,
-0.4
],[
0.3
,
-0.8
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-0.3
,
0.3
],[
-0.5
,
0.2
],[
0
,
0
],[
-0.1
,
0.1
],[
-0.3
,
0.9
],[
0.6
,
0.9
]],
"o"
:[[
-1.4
,
-0.4
],[
-1.1
,
0.5
],[
0
,
0
],[
0.3
,
-0.8
],[
0.5
,
-0.4
],[
0.7
,
0.2
],[
0.2
,
0.5
],[
-0.1
,
0.5
],[
0
,
0
],[
-1.6
,
0.7
],[
-0.4
,
0.4
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.1
,
-0.5
],[
0.3
,
-0.3
],[
0
,
0
],[
0.5
,
-0.2
],[
0.6
,
-0.5
],[
0.4
,
-1.2
],[
-0.6
,
-0.9
]],
"v"
:[[
1.25
,
-6.75
],[
-2.45
,
-6.55
],[
-4.75
,
-3.65
],[
-2.55
,
-2.95
],[
-1.45
,
-4.65
],[
0.55
,
-4.85
],[
1.95
,
-3.85
],[
2.05
,
-2.15
],[
1.15
,
-0.95
],[
0.85
,
-0.75
],[
-2.15
,
0.95
],[
-3.15
,
2.75
],[
-3.25
,
2.85
],[
-1.05
,
3.55
],[
-0.95
,
3.25
],[
-0.25
,
2.05
],[
0.85
,
1.35
],[
2.05
,
0.85
],[
2.95
,
0.35
],[
4.35
,
-1.75
],[
4.05
,
-4.85
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-0.4
,
-0.1
],[
-0.2
,
-0.3
],[
0.1
,
-0.5
],[
0.3
,
-0.2
],[
0.4
,
0.1
],[
0.2
,
0.3
],[
-0.2
,
0.5
],[
-0.4
,
0.2
]],
"o"
:[[
0.4
,
0.1
],[
0.2
,
0.3
],[
-0.1
,
0.4
],[
-0.4
,
0.2
],[
-0.4
,
-0.1
],[
-0.2
,
-0.4
],[
0.1
,
-0.4
],[
0.3
,
-0.2
]],
"v"
:[[
-2.45
,
4.15
],[
-1.55
,
4.85
],[
-1.45
,
6.05
],[
-2.15
,
6.95
],[
-3.35
,
7.05
],[
-4.25
,
6.35
],[
-4.35
,
5.15
],[
-3.55
,
4.25
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 2"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"mm"
,
"mm"
:
1
,
"nm"
:
"合并路径 1"
,
"mn"
:
"ADBE Vector Filter - Merge"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.160783999574
,
0.4
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
52.65
,
41.15
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
4
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
3
,
"ty"
:
4
,
"nm"
:
"形状图层 1"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
19
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
75
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"d"
:
1
,
"ty"
:
"el"
,
"s"
:{
"a"
:
0
,
"k"
:[
22.695
,
22.109
],
"ix"
:
2
},
"p"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
3
},
"nm"
:
"椭圆路径 1"
,
"mn"
:
"ADBE Vector Shape - Ellipse"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.87450986376
,
0.901960844152
,
0.956862804936
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
-14.777
,
8.93
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"椭圆 1"
,
"np"
:
3
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
4
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 5”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
0
,
"s"
:[
-7
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
10
,
"s"
:[
-9
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
15
,
"s"
:[
-9
]},{
"t"
:
25
,
"s"
:[
-7
]}],
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
106.125
,
131.5
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
114.75
,
123.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.099
,
0.014
],[
0
,
0
],[
-0.051
,
-1.117
],[
0
,
0
],[
-1.116
,
0.05
],[
-0.112
,
0.086
],[
0
,
0
],[
-0.121
,
0.892
],[
0
,
0
],[
1.09
,
0.148
]],
"o"
:[[
0
,
0
],[
-1.104
,
-0.049
],[
0
,
0
],[
-0.05
,
1.104
],[
0.1
,
0.013
],[
0
,
0
],[
0.833
,
-0.189
],[
0
,
0
],[
0.147
,
-1.09
],[
-0.198
,
-0.027
]],
"v"
:[[
3.861
,
-4.084
],[
-3.904
,
-4.131
],[
-5.884
,
-2.18
],[
-5.968
,
2.148
],[
-4.018
,
4.13
],[
-3.608
,
4.084
],[
3.85
,
2.677
],[
5.493
,
0.982
],[
5.871
,
-1.792
],[
4.158
,
-4.043
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.862744978362
,
0.886274988511
,
0.945097979377
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
101.329
,
76.27
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-0.109
,
-3.648
],[
0
,
0
],[
-0.135
,
0.99
],[
-1.527
,
0.096
],[
-1.086
,
-1.661
]],
"o"
:[[
0
,
0
],[
-4.167
,
-3.493
],[
0.089
,
-1.401
],[
1.229
,
-0.135
],[
1.158
,
1.873
]],
"v"
:[[
6.657
,
2.541
],[
-0.354
,
7.339
],[
-6.522
,
0.749
],[
-3.642
,
-6.329
],[
4.847
,
-5.678
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
102.189
,
79.125
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
2.292
,
-8.52
],[
-8.486
,
-2.197
],[
-2.86
,
7.558
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
7.656
,
1.972
]],
"o"
:[[
-2.198
,
8.486
],[
7.913
,
2.09
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.613
,
-7.581
],[
-8.392
,
-2.232
]],
"v"
:[[
-17.808
,
-3.965
],[
-6.498
,
15.418
],[
12.397
,
5.674
],[
18.779
,
7.37
],[
20.006
,
3.185
],[
13.402
,
1.466
],[
1.575
,
-15.275
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-1.577
,
6.124
],[
-6.159
,
-1.671
],[
1.671
,
-6.16
],[
6.159
,
1.671
]],
"o"
:[[
1.577
,
-6.125
],[
6.159
,
1.671
],[
-1.671
,
6.159
],[
-6.16
,
-1.671
]],
"v"
:[[
-13.565
,
-2.865
],[
0.476
,
-11.032
],[
8.642
,
3.01
],[
-5.399
,
11.176
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 2"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"mm"
,
"mm"
:
1
,
"nm"
:
"合并路径 1"
,
"mn"
:
"ADBE Vector Filter - Merge"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.160783999574
,
0.4
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
77.396
,
70.77
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 3"
,
"np"
:
4
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
3
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
2.198
,
-8.485
],[
-8.485
,
-2.197
],[
-2.697
,
7.711
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
7.562
,
2.006
]],
"o"
:[[
-2.198
,
8.486
],[
8.007
,
2.056
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.648
,
-7.487
],[
-8.452
,
-2.104
]],
"v"
:[[
-17.786
,
-3.965
],[
-6.476
,
15.417
],[
12.444
,
5.452
],[
18.884
,
7.019
],[
19.984
,
2.776
],[
13.355
,
1.278
],[
1.563
,
-15.369
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-1.671
,
6.159
],[
-6.16
,
-1.671
],[
1.671
,
-6.16
],[
6.16
,
1.671
]],
"o"
:[[
1.577
,
-6.125
],[
6.159
,
1.671
],[
-1.671
,
6.159
],[
-6.124
,
-1.577
]],
"v"
:[[
-13.543
,
-2.866
],[
0.499
,
-11.032
],[
8.664
,
3.009
],[
-5.377
,
11.175
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 2"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"mm"
,
"mm"
:
1
,
"nm"
:
"合并路径 1"
,
"mn"
:
"ADBE Vector Filter - Merge"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.64313695571
,
0.839215985466
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
75.467
,
70.514
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 4"
,
"np"
:
4
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
4
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0.983
,
1.086
],[
0
,
0
],[
-1.807
,
-0.492
]],
"o"
:[[
-1.513
,
-0.414
],[
0
,
0
],[
1.182
,
1.312
],[
0
,
0
]],
"v"
:[[
2.478
,
0.351
],[
-1.259
,
-1.934
],[
-2.478
,
-0.834
],[
2.046
,
1.934
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
69.921
,
76.684
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 5"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
5
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-1.786
,
-12.74
],[
0.791
,
12.84
],[
1.786
,
12.74
],[
-0.791
,
-12.84
]],
"c"
:
false
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.627450980392
,
0.670587995941
,
0.792156982422
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
103.092
,
100.967
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 6"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
6
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-0.842
,
0.995
],[
6.633
,
20.985
],[
1.849
,
5.701
],[
0
,
0
],[
-0.597
,
-6.742
],[
-2.239
,
-2.827
]],
"o"
:[[
2.805
,
-3.555
],[
-1.704
,
-5.278
],[
0
,
0
],[
0.61
,
6.643
],[
0.859
,
10.007
],[
4.38
,
5.642
]],
"v"
:[[
5.275
,
20.19
],[
3.067
,
-7.358
],[
-2.262
,
-23.827
],[
-9.7
,
-19.591
],[
-7.896
,
0.536
],[
-5.755
,
18.186
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
110.976
,
102.75
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 7"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
7
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
5
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 6”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
0
,
"s"
:[
-2
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
10
,
"s"
:[
0
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
15
,
"s"
:[
0
]},{
"t"
:
25
,
"s"
:[
-2
]}],
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
46.75
,
103.75
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
41.75
,
93.25
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0.208
,
0.425
],[
0.18
,
0.149
],[
0.231
,
0.035
],[
0.096
,
0
],[
0.16
,
-0.072
],[
0.089
,
-0.227
],[
0.005
,
-0.268
],[
0
,
0
],[
-0.011
,
0.006
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-0.082
,
-0.247
],[
-0.038
,
-0.437
]],
"o"
:[[
-0.059
,
-0.648
],[
-0.105
,
-0.212
],[
-0.179
,
-0.15
],[
-0.098
,
-0.015
],[
-0.162
,
0
],[
-0.244
,
0.106
],[
-0.093
,
0.229
],[
0
,
0
],[
0.001
,
-0.262
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.069
,
0.056
],[
0.082
,
0.245
],[
0
,
0
]],
"v"
:[[
1.424
,
1.184
],[
1.055
,
-0.411
],[
0.634
,
-0.962
],[
0.002
,
-1.247
],[
-0.288
,
-1.271
],[
-0.778
,
-1.174
],[
-1.297
,
-0.619
],[
-1.424
,
0.117
],[
-0.424
,
0.132
],[
-0.358
,
-0.268
],[
-0.364
,
-0.272
],[
-0.36
,
-0.267
],[
-0.358
,
-0.268
],[
-0.364
,
-0.272
],[
-0.36
,
-0.267
],[
-0.382
,
-0.294
],[
-0.366
,
-0.262
],[
-0.36
,
-0.267
],[
-0.382
,
-0.294
],[
-0.366
,
-0.262
],[
-0.354
,
-0.266
],[
-0.288
,
-0.271
],[
-0.155
,
-0.259
],[
-0.004
,
-0.192
],[
0.243
,
0.242
],[
0.428
,
1.271
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.627450980392
,
0.670587995941
,
0.792156982422
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
26.311
,
80.461
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
1.227
,
-0.717
],[
0.951
,
1.669
],[
-1.523
,
0.67
],[
-0.935
,
-1.767
]],
"o"
:[[
-1.228
,
0.717
],[
-0.951
,
-1.669
],[
1.523
,
-0.67
],[
0.935
,
1.769
]],
"v"
:[[
1.99
,
3.052
],[
-2.205
,
0.768
],[
-1.693
,
-3.099
],[
2.153
,
-1.174
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
26.551
,
81.273
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
11.126
,
-0.566
],[
-0.675
,
-2.132
],[
0.655
,
-0.302
],[
-0.723
,
0.089
],[
-0.51
,
1.944
],[
0.119
,
0.524
],[
-0.636
,
2.734
],[
-6.57
,
-3.268
],[
-0.597
,
-0.702
],[
3.643
,
-7.017
]],
"o"
:[[
0.083
,
0.114
],[
0.135
,
0.427
],[
-0.983
,
0.451
],[
-4.375
,
-4.338
],[
0.719
,
-2.619
],[
-0.441
,
-1.69
],[
1.432
,
-5.848
],[
1.403
,
0.728
],[
0.764
,
0.931
],[
-2.378
,
4.787
]],
"v"
:[[
-7.743
,
8.907
],[
-6.663
,
12.317
],[
-9.621
,
12.457
],[
-9.897
,
12.919
],[
-15.694
,
3.496
],[
-13.562
,
0.898
],[
-13.601
,
-3.968
],[
6.854
,
-9.74
],[
11.71
,
-10.995
],[
12.562
,
0.884
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.345097979377
,
0.388234994926
,
0.509803981407
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
35.072
,
65.811
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 3"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
3
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-0.87
,
0.778
],[
1.153
,
0.181
],[
0.87
,
-0.778
],[
-1.153
,
-0.181
]],
"c"
:
false
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.356862984452
,
0.4
,
0.521568986481
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
40.506
,
84.78
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 4"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
4
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-0.16
,
-0.257
],[
0
,
-0.148
],[
0.091
,
-0.129
],[
0.244
,
-0.14
],[
0
,
0
],[
-0.201
,
0.276
],[
0.002
,
0.343
],[
0.23
,
0.367
],[
0.425
,
0.377
],[
0
,
0
]],
"o"
:[[
0.375
,
0.333
],[
0.162
,
0.258
],[
-0.002
,
0.131
],[
-0.092
,
0.127
],[
0
,
0
],[
0.33
,
-0.191
],[
0.201
,
-0.275
],[
0
,
-0.39
],[
-0.232
,
-0.369
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-1.009
,
-1.199
],[
-0.209
,
-0.305
],[
0.007
,
0.303
],[
-0.119
,
0.668
],[
-0.615
,
1.08
],[
-0.115
,
1.947
],[
0.691
,
1.255
],[
1.007
,
0.303
],[
0.639
,
-0.836
],[
-0.345
,
-1.947
],[
-1.009
,
-1.198
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.356862984452
,
0.4
,
0.521568986481
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
41.695
,
78.259
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 5"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
5
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-0.829
,
-0.803
],[
-0.11
,
1.149
],[
0.829
,
0.803
],[
0.109
,
-1.149
]],
"c"
:
false
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.356862984452
,
0.4
,
0.521568986481
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
35.411
,
79.067
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 6"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
6
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-1.416
,
-0.979
],[
-0.466
,
1.657
],[
1.416
,
0.979
],[
0.466
,
-1.657
]],
"c"
:
false
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.356862984452
,
0.4
,
0.521568986481
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
44.491
,
75.703
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 7"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
7
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.114
,
-0.083
],[
-2.035
,
-5.689
],[
0
,
0
],[
-5.689
,
2.035
],[
1.9
,
5.263
],[
0.067
,
0.214
],[
1.012
,
3.197
],[
5.641
,
-1.739
]],
"o"
:[[
-5.689
,
2.036
],[
0
,
0
],[
2.035
,
5.689
],[
5.262
,
-1.9
],[
-0.052
,
-0.311
],[
-0.337
,
-1.065
],[
-1.754
,
-5.543
],[
-0.083
,
-0.114
]],
"v"
:[[
-4.55
,
-13.548
],[
-11.144
,
0.595
],[
-8.973
,
6.709
],[
5.169
,
13.303
],[
11.279
,
0.298
],[
10.993
,
-0.456
],[
9.051
,
-6.736
],[
-4.238
,
-13.6
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
37.427
,
76.893
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 8"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
8
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-2.9
,
0.107
],[
-2.644
,
1.14
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
2.423
,
2.276
],[
3.014
,
-0.111
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-7.198
,
1.043
],[
0.51
,
4.246
],[
7.198
,
2.492
],[
5.017
,
-4.353
],[
-5.794
,
-2.735
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.345097979377
,
0.388234994926
,
0.509803981407
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
40.326
,
87.963
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 9"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
9
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-3.737
,
1.298
],[
0.971
,
3.253
],[
0.105
,
0.095
],[
0.1
,
-0.005
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
1.271
,
3.238
],[
3.842
,
-1.202
],[
-0.005
,
-0.101
],[
-0.005
,
-0.1
],[
0
,
0
]],
"v"
:[[
5.027
,
-9.962
],[
-9.249
,
-5.309
],[
-5.898
,
5.13
],[
3.099
,
8.664
],[
8.278
,
0.482
],[
8.162
,
0.188
],[
8.052
,
-0.007
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.890196018593
,
0.909803981407
,
0.960784014534
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
39.246
,
89.973
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 10"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
10
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
6
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 7”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-0.854
,
0.007
],[
0.007
,
0.854
],[
0.854
,
-0.006
],[
-0.007
,
-0.854
]],
"o"
:[[
0.854
,
-0.007
],[
-0.006
,
-0.854
],[
-0.854
,
0.007
],[
0.006
,
0.855
]],
"v"
:[[
0.035
,
1.486
],[
1.486
,
-0.035
],[
-0.035
,
-1.487
],[
-1.486
,
0.035
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
28.197
,
124.349
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.049
,
1.802
],[
4.401
,
0.025
],[
0.009
,
-3.324
],[
-3.898
,
-0.11
]],
"o"
:[[
0.009
,
-3.324
],[
-4.401
,
-0.024
],[
-0.022
,
1.615
],[
4.121
,
0.132
]],
"v"
:[[
7.981
,
2.129
],[
-0.013
,
-3.907
],[
-8.008
,
2.054
],[
-0.449
,
3.33
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
19.727
,
122.622
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-2.503
,
-2.959
],[
-1.367
,
-4.04
],[
0
,
0
],[
2.631
,
3.121
],[
4.447
,
0.017
]],
"o"
:[[
4.236
,
0.032
],[
2.554
,
3.03
],[
0
,
0
],[
-1.406
,
-4.157
],[
-2.681
,
-3.193
],[
0
,
0
]],
"v"
:[[
-8.442
,
-6.963
],[
1.557
,
-2.6
],[
7.495
,
7.963
],[
8.442
,
7.643
],[
2.322
,
-3.245
],[
-8.436
,
-7.963
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.627450980392
,
0.670587995941
,
0.792156982422
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
29.966
,
115.441
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 3"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
3
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
2.013
,
-2.877
],[
0.546
,
-9.378
],[
0
,
0
],[
0
,
0
],[
5.511
,
2.615
]],
"o"
:[[
-2.91
,
4.293
],[
0
,
0
],[
0
,
0
],[
0.658
,
-5.932
],[
-5.15
,
-2.415
]],
"v"
:[[
-6.812
,
-6.491
],[
-12.009
,
14.064
],[
5.068
,
14.085
],[
11.351
,
1.067
],[
3.997
,
-11.67
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.803921987496
,
0.83529399797
,
0.917646998985
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
24.722
,
111.739
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 4"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
4
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-1.3
,
-5.601
],[
-3.1
,
-17.601
],[
0
,
0
],[
0
,
0
],[
-5
,
1.2
]],
"o"
:[[
0.9
,
3.699
],[
0
,
0
],[
0
,
0
],[
13
,
-8
],[
6.9
,
-1.5
]],
"v"
:[[
17.1
,
-11.35
],[
23.1
,
20.65
],[
-17.6
,
20.65
],[
-23.1
,
-5.45
],[
3.9
,
-19.15
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.803921987496
,
0.83529399797
,
0.917646998985
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
46.9
,
105.25
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 5"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
5
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
7
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 8”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
-3.3
,
4.9
],[
-6.9
,
-1.3
],[
-10.3
,
-4.601
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
1
,
-1.5
],[
3.7
,
0.7
],[
0
,
0
],[
0
,
0
],[
-8.2
,
-5
]],
"v"
:[[
-16.65
,
-10.15
],[
-0.95
,
-12.95
],[
19.95
,
-4.95
],[
11.85
,
14.25
],[
-9.35
,
4.75
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.752940996955
,
0.788234994926
,
0.882353001015
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
62.523
,
98.47
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
2.4
,
-3.9
],[
0
,
0
],[
-3.9
,
-2.399
],[
-0.1
,
-0.101
],[
0
,
0
],[
-1.199
,
1.9
],[
0
,
0
],[
3.7
,
2.5
],[
0.2
,
0.1
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-2.4
,
3.8
],[
0.1
,
0.101
],[
0
,
0
],[
2
,
1.1
],[
0
,
0
],[
2.5
,
-3.7
],[
-0.199
,
-0.1
],[
0
,
0
],[
-4.1
,
-2.2
]],
"v"
:[[
-16.2
,
-9.85
],[
-16.5
,
-9.45
],[
-13.9
,
1.85
],[
-13.5
,
2.15
],[
8
,
13.95
],[
13.7
,
12.55
],[
16.4
,
8.65
],[
14.2
,
-2.45
],[
13.6
,
-2.85
],[
-4.6
,
-12.85
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
84.373
,
106.569
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
8
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 9”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
12.5
,
-2.5
],[
-12.5
,
-2.5
],[
-13.5
,
-1.5
],[
-13.5
,
1.5
],[
-12.5
,
2.5
],[
12.5
,
2.5
],[
13.5
,
1.5
],[
13.5
,
-1.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.96470600203
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
67.5
,
29.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
12.5
,
-2.5
],[
-12.5
,
-2.5
],[
-13.5
,
-1.5
],[
-13.5
,
1.5
],[
-12.5
,
2.5
],[
12.5
,
2.5
],[
13.5
,
1.5
],[
13.5
,
-1.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.96470600203
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
67.5
,
20.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
6.5
,
-2.5
],[
-6.5
,
-2.5
],[
-7.5
,
-1.5
],[
-7.5
,
1.5
],[
-6.5
,
2.5
],[
6.5
,
2.5
],[
7.5
,
1.5
],[
7.5
,
-1.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.96470600203
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
61.5
,
11.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 3"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
3
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
17
,
-2.5
],[
-17
,
-2.5
],[
-18
,
-1.5
],[
-18
,
1.5
],[
-17
,
2.5
],[
17
,
2.5
],[
18
,
1.5
],[
18
,
-1.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.96470600203
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
72
,
2.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 4"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
4
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
9
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 10”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
1.1
,
0
],[
0
,
0
],[
0
,
-1.1
],[
0
,
0
],[
-1.1
,
0
],[
0
,
0
],[
0
,
1.1
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-1.1
,
0
],[
0
,
0
],[
0
,
1.1
],[
0
,
0
],[
1.1
,
0
],[
0
,
0
],[
0
,
-1.1
]],
"v"
:[[
18.5
,
-25
],[
-18.5
,
-25
],[
-20.5
,
-23
],[
-20.5
,
23
],[
-18.5
,
25
],[
18.5
,
25
],[
20.5
,
23
],[
20.5
,
-23
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.960784014534
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
23.5
,
52
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
10
,
"ty"
:
4
,
"nm"
:
"“ͼ²ã 11”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
75
,
74
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
70
,
63.5
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
12.5
,
-2.5
],[
-12.5
,
-2.5
],[
-13.5
,
-1.5
],[
-13.5
,
1.5
],[
-12.5
,
2.5
],[
12.5
,
2.5
],[
13.5
,
1.5
],[
13.5
,
-1.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.87450986376
,
0.901960844152
,
0.956862804936
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
117.5
,
44.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-5.5
,
5.5
],[
-5.5
,
-5.5
],[
5.5
,
-5.5
],[
5.5
,
5.5
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.875903739181
,
0.902435601926
,
0.955499387255
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
109.5
,
30.5
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 2"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
-2.2
,
0
],[
0
,
0
],[
0
,
3.3
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
2.2
],[
0
,
0
],[
-3.3
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
14.6
,
-6
],[
14.6
,
2
],[
18.6
,
6
],[
-12.6
,
6
],[
-18.6
,
0
],[
-18.6
,
-6
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.901961023667
,
0.917646998985
,
0.956862984452
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
112.6
,
64
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 3"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
3
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
0.6
,
0
]],
"o"
:[[
-0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
]],
"v"
:[[
-13.5
,
4
],[
-14.5
,
3
],[
-14.5
,
0
],[
-13.5
,
-1
],[
11.5
,
-1
],[
12.5
,
0
],[
12.5
,
3
],[
11.5
,
4
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-14.5
,
-7
],[
-14.5
,
-18
],[
-3.5
,
-18
],[
-3.5
,
-7
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 2"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.6
,
0
],[
0
,
0
],[
0
,
-0.6
],[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
2.8
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
-0.6
,
0
],[
0
,
0
],[
0
,
0.6
],[
0
,
0
],[
2.8
,
0
],[
0
,
0
],[
0
,
-0.6
]],
"v"
:[[
19.5
,
-27
],[
-19.5
,
-27
],[
-20.5
,
-26
],[
-20.5
,
26
],[
-19.5
,
27
],[
15.5
,
27
],[
20.5
,
22
],[
20.5
,
-26
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 3"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"mm"
,
"mm"
:
1
,
"nm"
:
"合并路径 1"
,
"mn"
:
"ADBE Vector Filter - Merge"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
0.960784014534
,
0.968626972273
,
0.984314024682
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
118.5
,
43
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 4"
,
"np"
:
5
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
4
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
25
,
"st"
:
0
,
"bm"
:
0
}],
"markers"
:[]}
\ No newline at end of file
src/components/LottieIcon.tsx
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Date: 2021-06-15 13:48:35
* @LastEditors: wufan
* @LastEditTime: 2021-06-
15 14:24:57
* @LastEditTime: 2021-06-
24 11:10:45
* @Description: Description
*/
import
React
from
'react'
;
...
...
@@ -12,6 +12,7 @@ import student from '@/common/lottie/student.json';
import
activity
from
'@/common/lottie/activity.json'
;
import
teacher
from
'@/common/lottie/teacher.json'
;
import
college
from
'@/common/lottie/college.json'
;
import
search
from
'@/common/lottie/search.json'
;
import
'./LottieIcon.less'
;
...
...
@@ -29,7 +30,8 @@ const ANIMATION_DATA_MAP: {
student
,
activity
,
teacher
,
college
college
,
search
}
function
LottieIcon
(
props
:
LottieIconInterface
)
{
...
...
src/modules/college-manage/EmployeeManage.tsx
View file @
0794a910
...
...
@@ -8,17 +8,16 @@
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
_
from
"underscore"
;
import
PageControl
from
"@/components/PageControl"
;
import
{
CheckBox
}
from
"@/components"
;
import
{
CheckBox
,
PageControl
}
from
"@/components"
;
import
{
Button
,
Table
,
Modal
,
message
,
Input
}
from
"antd"
;
import
Service
from
'@/common/js/service'
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college.json'
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
EmployeeAddOrEditModal
from
"../store-manage/EmployeeAddOrEditModal"
;
import
User
from
"@/common/js/user"
;
import
"./EmployeeManage.less"
;
import
ChooseMembersModal
from
"./modal/ChooseMembersModal"
;
import
SetEmployeeModal
from
"./modal/SetEmployeeModal"
;
const
{
confirm
}
=
Modal
;
const
{
Search
}
=
Input
;
...
...
@@ -364,7 +363,11 @@ function EmployeeManage() {
}
</
div
>
<
div
className=
"box-body"
>
<
Table
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
}
}
size=
{
"middle"
}
pagination=
{
false
}
dataSource=
{
employeeList
}
...
...
src/modules/college-manage/UserManagePage.tsx
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @LastEditors: wufan
* @LastEditTime: 2021-0
5-30 15:57:40
* @LastEditTime: 2021-0
6-21 11:13:15
* @Description: 学员管理页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
...
...
@@ -11,13 +11,15 @@ import React, { useEffect, useState } from "react";
import
{
withRouter
}
from
"react-router-dom"
;
import
_
from
"underscore"
;
import
{
PageControl
}
from
"@/components"
;
import
{
Table
,
Input
,
DatePicker
,
Select
,
Button
,
message
}
from
"antd"
;
import
{
Input
,
DatePicker
,
Select
,
Button
,
message
}
from
"antd"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
User
from
"@/common/js/user"
;
import
ChooseMembersModal
from
"./modal/ChooseMembersModal"
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college.json'
;
import
"./UserManagePage.less"
;
import
moment
from
"moment"
;
const
{
Option
}
=
Select
;
const
{
Search
}
=
Input
;
const
{
RangePicker
}
=
DatePicker
;
...
...
@@ -198,7 +200,11 @@ function UserManagePage() {
>
添加学员
</
Button
>
}
<
div
className=
"box-body"
>
<
Table
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
}
}
size=
{
"middle"
}
pagination=
{
false
}
dataSource=
{
userList
}
...
...
src/modules/college-manage/modal/ChooseMembersModal.jsx
View file @
0794a910
...
...
@@ -5,8 +5,9 @@
*/
import
React
from
'react'
;
import
{
Modal
,
Input
,
Table
,
message
,
Tooltip
,
Empty
}
from
'antd'
;
import
{
Modal
,
Input
,
message
,
Tooltip
}
from
'antd'
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college.json'
;
import
Service
from
'@/common/js/service'
;
import
User
from
'@/common/js/user'
import
SetEmployeeModal
from
"./SetEmployeeModal"
;
...
...
@@ -319,7 +320,7 @@ class ChooseMembersModal extends React.Component {
pagination=
{
false
}
scroll=
{
{
y
:
290
}
}
renderEmpty=
{
{
image
:
searchKey
?
search
:
''
,
image
:
searchKey
?
search
:
college
,
description
:
<
div
>
<
div
style=
{
{
color
:
'#333'
}
}
>
暂无数据
</
div
>
<
div
style=
{
{
color
:
'#666'
,
padding
:
'0 32px'
,
fontSize
:
'12px'
}
}
>
需要先将员工添加到企微可见范围后,员工才会出现在这里
</
div
>
...
...
@@ -346,7 +347,11 @@ class ChooseMembersModal extends React.Component {
<
span
className=
{
(
selectUserList
.
length
>
0
)
?
'span-right-l'
:
null
}
>
清空
</
span
>
</
div
>
<
div
className=
'container-right-body'
>
<
Table
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
}
}
rowKey=
{
(
record
)
=>
record
.
enterpriseVisibleUserId
}
dataSource=
{
selectUserList
}
columns=
{
this
.
selectedColumnsRight
()
}
...
...
src/modules/college-manage/modal/ChooseMembersModal.less
View file @
0794a910
...
...
@@ -125,7 +125,9 @@
.ant-empty-normal {
margin: 120px 0 !important;
}
.ant-empty {
margin-top: 76px;
}
.avatar{
display: flex;
align-items: center;
...
...
src/modules/course-manage/components/LiveCourseList.jsx
View file @
0794a910
/*
* @Author: 吴文洁
* @Date: 2020-07-14 15:43:00
* @Author: 吴文洁
* @Date: 2020-07-14 15:43:00
* @Last Modified by: chenshu
* @Last Modified time: 2021-03-16 17:37:23
* @Description: 大班直播、互动班课的直播课列表
*/
import
React
from
'react'
;
import
{
Table
,
Modal
,
message
,
Dropdown
,
Button
,
Switch
,
Tooltip
}
from
'antd'
;
import
{
Table
,
Modal
,
message
,
Dropdown
,
Switch
,
Tooltip
}
from
'antd'
;
import
{
Route
,
withRouter
}
from
'react-router-dom'
;
import
{
PageControl
}
from
"@/components"
;
import
{
PageControl
}
from
'@/components'
;
import
DownloadLiveModal
from
'@/components/DownloadLiveModal'
;
import
ManageCoursewareModal
from
'../modal/ManageCoursewareModal'
;
import
ShareLiveModal
from
'../modal/ShareLiveModal'
;
import
RelatedPlanModal
from
'../modal/RelatedPlanModal'
;
import
'./LiveCourseList.less'
;
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
appId
,
shareUrl
,
LIVE_SHARE
,
LIVE_REPLAY_MAP
}
from
'@/domains/course-domain/constants'
;
import
CourseService
from
"@/domains/course-domain/CourseService"
;
import
BaseService
from
"@/domains/basic-domain/baseService"
;
import
{
appId
,
LIVE_SHARE
}
from
'@/domains/course-domain/constants'
;
import
CourseService
from
'@/domains/course-domain/CourseService'
;
import
BaseService
from
'@/domains/basic-domain/baseService'
;
import
DataList
from
'../DataList/DataList'
;
import
User
from
'@/common/js/user'
;
import
_
from
"underscore"
;
import
_
from
'underscore'
;
const
{
confirm
}
=
Modal
;
const
courseStateShow
=
{
UN_START
:
{
code
:
1
,
title
:
"待开课"
,
color
:
"#FFB129"
,
title
:
'待开课'
,
color
:
'#FFB129'
,
},
STARTING
:
{
code
:
2
,
title
:
"上课中"
,
color
:
"#238FFF"
,
title
:
'上课中'
,
color
:
'#238FFF'
,
},
FINISH
:
{
code
:
3
,
title
:
"已完成"
,
color
:
"#3BBDAA"
,
title
:
'已完成'
,
color
:
'#3BBDAA'
,
},
EXPIRED
:
{
code
:
4
,
title
:
"未成功开课"
,
color
:
"#999"
,
title
:
'未成功开课'
,
color
:
'#999'
,
},
};
class
LiveCourseList
extends
React
.
Component
{
...
...
@@ -55,702 +53,740 @@ class LiveCourseList extends React.Component {
super
(
props
);
this
.
state
=
{
columns
:
[],
openDownloadModal
:
false
,
url
:
''
,
RelatedPlanModalVisible
:
false
,
selectPlanList
:
{}
}
openDownloadModal
:
false
,
url
:
''
,
RelatedPlanModalVisible
:
false
,
selectPlanList
:
{},
}
;
}
componentWillMount
(){
componentWillMount
()
{
this
.
parseColumns
();
}
componentDidMount
()
{
this
.
getDownloadVersion
()
this
.
getDownloadVersion
()
;
}
// 显示分享弹窗
handleShowShareModal
=
(
item
,
needStr
=
false
)
=>
{
const
_appId
=
appId
;
const
_appId
=
appId
;
const
{
liveCourseId
}
=
item
;
const
htmlUrl
=
`
${
LIVE_SHARE
}
live_detail/
${
liveCourseId
}
?id=
${
User
.
getStoreId
()}
`
;
const
longUrl
=
htmlUrl
console
.
log
(
'htmlUrl'
,
htmlUrl
,
longUrl
);
const
longUrl
=
htmlUrl
;
console
.
log
(
'htmlUrl'
,
htmlUrl
,
longUrl
);
const
shareData
=
{
...
item
,
longUrl
};
const
shareLiveModal
=
(
<
ShareLiveModal
needStr=
{
needStr
}
data=
{
shareData
}
type=
"liveClass"
title=
"直播课"
type=
'liveClass'
title=
'直播课'
close=
{
()
=>
{
this
.
setState
({
shareLiveModal
:
null
shareLiveModal
:
null
,
});
localStorage
.
setItem
(
'largeLiveCourseItem'
,
''
);
}
}
/>
)
)
;
this
.
setState
({
shareLiveModal
})
}
this
.
setState
({
shareLiveModal
})
;
}
;
//改变上架状态
changeShelfState
=
(
item
)
=>
{
let
_shelfState
=
item
.
shelfState
if
(
_shelfState
===
'NO'
){
_shelfState
=
"YES"
;
item
.
shelfState
=
"YES"
}
else
{
_shelfState
=
"NO"
item
.
shelfState
=
"NO"
}
const
params
=
{
"liveCourseId"
:
item
.
liveCourseId
,
"shelfState"
:
_shelfState
changeShelfState
=
(
item
)
=>
{
let
_shelfState
=
item
.
shelfState
;
if
(
_shelfState
===
'NO'
)
{
_shelfState
=
'YES'
;
item
.
shelfState
=
'YES'
;
}
else
{
_shelfState
=
'NO'
;
item
.
shelfState
=
'NO'
;
}
CourseService
.
turnOnOrOffLiveCloudCourse
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
){
if
(
_shelfState
===
"YES"
){
message
.
success
(
"已开启展示"
);
}
else
{
message
.
success
(
"已取消展示"
);
const
params
=
{
liveCourseId
:
item
.
liveCourseId
,
shelfState
:
_shelfState
,
};
CourseService
.
turnOnOrOffLiveCloudCourse
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
if
(
_shelfState
===
'YES'
)
{
message
.
success
(
'已开启展示'
);
}
else
{
message
.
success
(
'已取消展示'
);
}
}
})
}
})
;
}
;
// 前往上课数据页面
handleLinkToClassData
=
(
item
)
=>
{
const
{
match
}
=
this
.
props
;
window
.
RCHistory
.
push
({
pathname
:
`
${
match
.
url
}
/live-course-data?type=large&id=
${
item
.
liveCourseId
}
`
pathname
:
`
${
match
.
url
}
/live-course-data?type=large&id=
${
item
.
liveCourseId
}
`
,
});
}
}
;
parseColumns
=
()
=>
{
const
menu
=
(
item
)
=>
(
<
div
className=
"live-course-more-menu"
>
<
div
>
上课记录
</
div
>
<
div
className=
'live-course-more-menu'
>
<
div
>
上课记录
</
div
>
<
div
onClick=
{
()
=>
{
this
.
handleShowRepeatModal
(
item
);
}
}
>
}
}
>
回放记录
</
div
>
</
div
>
);
let
columns
const
userRole
=
User
.
getUserRole
();
if
(
userRole
!==
"CloudLecturer"
)
{
let
columns
;
const
userRole
=
User
.
getUserRole
();
if
(
userRole
!==
'CloudLecturer'
)
{
columns
=
[
{
title
:
"直播课"
,
width
:
"23%"
,
key
:
"course"
,
dataIndex
:
"courseName"
,
title
:
'直播课'
,
width
:
'23%'
,
key
:
'course'
,
dataIndex
:
'courseName'
,
render
:
(
val
,
record
)
=>
{
let
hasCover
=
false
;
return
(
<
div
className=
"record__item"
>
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
"COVER"
){
hasCover
=
true
;
return
<
img
className=
"course-cover"
src=
{
item
.
mediaUrl
}
/>
}
})
}
{
!
hasCover
&&
<
img
className=
"course-cover"
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
<
div
className=
'record__item'
>
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
'COVER'
)
{
hasCover
=
true
;
return
<
img
className=
'course-cover'
src=
{
item
.
mediaUrl
}
/>;
}
})
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
<
div
>
{
record
.
courseName
.
length
>
17
?
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
"course-name"
>
{
record
.
courseName
}
</
div
>
{
record
.
courseName
.
length
>
17
?
(
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
)
:
(
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
)
}
<
div
>
<
span
className=
'course-time'
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
</
span
>
<
span
className=
'course-status'
style=
{
{
color
:
courseStateShow
[
record
.
courseState
].
color
,
border
:
`1px solid ${courseStateShow[record.courseState].color}`
}
}
>
{
courseStateShow
[
record
.
courseState
].
title
}
</
span
>
</
div
>
<
div
className=
'teacher-assistant'
>
{
record
.
teacherName
.
length
>
4
?
(
<
Tooltip
title=
{
record
.
teacherName
}
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
:
<
div
className=
"course-name"
>
{
record
.
courseName
}
</
div
>
}
<
div
>
<
span
className=
"course-time"
>
{
formatDate
(
"YYYY-MM-DD H:i"
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
"H:i"
,
parseInt
(
record
.
endTime
))
}
</
span
>
<
span
className=
"course-status"
style=
{
{
color
:
courseStateShow
[
record
.
courseState
].
color
,
border
:
`1px solid ${courseStateShow[record.courseState].color}`
}
}
>
{
courseStateShow
[
record
.
courseState
].
title
}
</
span
>
</
div
>
<
div
className=
"teacher-assistant"
>
{
record
.
teacherName
.
length
>
4
?
<
Tooltip
title=
{
record
.
teacherName
}
>
<
span
className=
"teacher"
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
:
<
span
className=
"teacher"
>
讲师:
{
record
.
teacherName
}
</
span
>
}
{
record
.
admins
.
length
>
0
&&
<>
<
span
className=
"split"
>
|
</
span
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
"assistant"
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
adminName
}
{
(
index
<
record
.
admins
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
)
:
(
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
)
}
{
record
.
admins
.
length
>
0
&&
(
<>
<
span
className=
'split'
>
|
</
span
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
(
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
'assistant'
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
);
})
}
</
span
>
</
Tooltip
>
)
:
(
<
span
className=
'assistant'
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
</
Tooltip
>
:
<
span
className=
"assistant"
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
adminName
}
{
(
index
<
record
.
admins
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
</
span
>
}
</>
}
</
div
>
);
})
}
</
span
>
)
}
</>
)
}
</
div
>
</
div
>
</
div
>
)
}
)
;
}
,
},
{
title
:
"课程分类"
,
width
:
"10%"
,
key
:
"couseCatalog"
,
dataIndex
:
"couseCatalog"
,
title
:
'课程分类'
,
width
:
'10%'
,
key
:
'couseCatalog'
,
dataIndex
:
'couseCatalog'
,
render
:
(
val
,
item
)
=>
{
return
(
<
div
className=
"categoryName"
>
{
item
.
categoryName
}
</
div
>
)
return
<
div
className=
'categoryName'
>
{
item
.
categoryName
}
</
div
>;
},
},
{
title
:
"课件管理"
,
width
:
"8%"
,
key
:
"courseware"
,
dataIndex
:
"courseware"
,
title
:
'课件管理'
,
width
:
'8%'
,
key
:
'courseware'
,
dataIndex
:
'courseware'
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
className=
"courseware"
<
span
className=
'courseware'
onClick=
{
()
=>
{
this
.
setState
({
editData
:
item
,
openCoursewareModal
:
true
,
});
}
}
>
{
item
.
courseDocumentCount
}
个
</
span
>
this
.
setState
({
editData
:
item
,
openCoursewareModal
:
true
,
});
}
}
>
{
item
.
courseDocumentCount
}
个
</
span
>
);
},
},
{
title
:
'上课数据'
,
width
:
"9%"
,
key
:
"quota"
,
dataIndex
:
"quota"
,
width
:
'9%'
,
key
:
'quota'
,
dataIndex
:
'quota'
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
className=
"iconfont icon quota-icon"
onClick=
{
()
=>
{
this
.
handleLinkToClassData
(
item
)
}
}
>

</
span
>
<
span
className=
'iconfont icon quota-icon'
onClick=
{
()
=>
{
this
.
handleLinkToClassData
(
item
);
}
}
>

</
span
>
);
},
},
{
title
:
<
span
>
<
span
>
学院展示
</
span
>
<
Tooltip
title=
{
<
div
>
开启后,学员可在学院内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”学院展示。
<
br
/>
关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。
</
div
>
}
><
i
className=
"icon iconfont"
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
,
fontWeight
:
'normal'
}
}
>

</
i
></
Tooltip
>
</
span
>,
width
:
"9%"
,
key
:
"shelfState"
,
dataIndex
:
"shelfState"
,
title
:
(
<
span
>
<
span
>
学院展示
</
span
>
<
Tooltip
title=
{
<
div
>
开启后,学员可在学院内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”学院展示。
<
br
/>
关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。
</
div
>
}
>
<
i
className=
'icon iconfont'
style=
{
{
marginLeft
:
'5px'
,
cursor
:
'pointer'
,
color
:
'#bfbfbf'
,
fontSize
:
'14px'
,
fontWeight
:
'normal'
}
}
>

</
i
>
</
Tooltip
>
</
span
>
),
width
:
'9%'
,
key
:
'shelfState'
,
dataIndex
:
'shelfState'
,
render
:
(
val
,
item
,
index
)
=>
{
return
(
<
Switch
defaultChecked=
{
item
.
shelfState
===
"YES"
?
true
:
false
}
onChange=
{
()
=>
this
.
changeShelfState
(
item
)
}
/>
)
return
<
Switch
defaultChecked=
{
item
.
shelfState
===
'YES'
?
true
:
false
}
onChange=
{
()
=>
this
.
changeShelfState
(
item
)
}
/>;
},
},
{
title
:
'创建时间'
,
width
:
"9%"
,
key
:
"created"
,
dataIndex
:
"created"
,
width
:
'9%'
,
key
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>
);
return
<
span
>
{
val
===
0
?
'-'
:
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
},
},
{
title
:
'关联项'
,
width
:
"15%"
,
key
:
"planList"
,
dataIndex
:
"planList"
,
width
:
'15%'
,
key
:
'planList'
,
dataIndex
:
'planList'
,
render
:
(
val
,
record
)
=>
{
return
(
<
div
className=
"related-task"
>
{
record
.
relatedPlanList
?
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
"top"
arrowPointAtCenter
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
planName
}
{
(
index
<
record
.
relatedPlanList
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
</
Tooltip
>
:
<
span
></
span
>
}
return
(
<
div
className=
'related-task'
>
{
record
.
relatedPlanList
?
(
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
);
})
}
</
Tooltip
>
)
:
(
<
span
></
span
>
)
}
</
div
>
)
)
;
},
},
{
title
:
"操作"
,
width
:
"15%"
,
key
:
"operate"
,
dataIndex
:
"operate"
,
title
:
'操作'
,
width
:
'15%'
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
val
,
item
)
=>
{
return
(
<
div
className=
"operate"
>
{
((
item
.
courseState
===
"UN_START"
||
item
.
courseState
===
"STARTING"
)
&&
(
item
.
teacherId
===
User
.
getUserId
()
||
_
.
pluck
(
item
.
admins
,
"adminId"
).
includes
(
User
.
getUserId
())))
&&
<>
<
div
key=
"enter_live_room1"
className=
"operate__item"
onClick=
{
()
=>
{
this
.
handleEnterLiveRoom
(
item
)
}
}
>
进入直播间
</
div
>
<
span
className=
"operate__item split"
key=
"view_play_back_split"
>
|
</
span
>
</>
}
{
(
item
.
courseState
===
"FINISH"
&&
item
.
haveRecord
===
"YES"
)
&&
<
div
className=
'operate'
>
{
(
item
.
courseState
===
'UN_START'
||
item
.
courseState
===
'STARTING'
)
&&
(
item
.
teacherId
===
User
.
getUserId
()
||
_
.
pluck
(
item
.
admins
,
'adminId'
).
includes
(
User
.
getUserId
()))
&&
(
<>
<
div
key=
"view_play_back"
className=
"operate__item"
onClick=
{
()
=>
{
this
.
handleViewPlayBack
(
item
)}
}
>
查看回放
</
div
>
<
span
className=
"operate__item split"
key=
"view_play_back_split"
>
|
</
span
>
</>
}
{
item
.
courseState
!==
"EXPIRED"
&&
<>
<
div
key=
"share"
className=
"operate__item"
onClick=
{
()
=>
{
this
.
handleShowShareModal
(
item
);
}
}
>
分享
key=
'enter_live_room1'
className=
'operate__item'
onClick=
{
()
=>
{
this
.
handleEnterLiveRoom
(
item
);
}
}
>
进入直播间
</
div
>
<
span
className=
'operate__item split'
key=
'view_play_back_split'
>
{
' '
}
|
{
' '
}
</
span
>
</>
}
{
item
.
courseState
!==
"EXPIRED"
&&
)
}
{
item
.
courseState
===
'FINISH'
&&
item
.
haveRecord
===
'YES'
&&
(
<>
<
div
key=
'view_play_back'
className=
'operate__item'
onClick=
{
()
=>
{
this
.
handleViewPlayBack
(
item
);
}
}
>
查看回放
</
div
>
<
span
className=
'operate__item split'
key=
'view_play_back_split'
>
{
' '
}
|
{
' '
}
</
span
>
</>
)
}
{
item
.
courseState
!==
'EXPIRED'
&&
(
<>
<
span
key=
"split1"
className=
"operate__item split"
>
|
</
span
>
<
div
className=
"big-live"
>
<
div
key=
'share'
className=
'operate__item'
onClick=
{
()
=>
{
this
.
handleShowShareModal
(
item
);
}
}
>
分享
</
div
>
</>
)
}
{
item
.
courseState
!==
'EXPIRED'
&&
(
<>
<
span
key=
'split1'
className=
'operate__item split'
>
{
' '
}
|
{
' '
}
</
span
>
<
div
className=
'big-live'
>
<
Dropdown
overlay=
{
this
.
renderMoreOperate
(
item
)
}
>
<
span
className=
"more-operate"
>
<
span
className=
"operate-text"
>
更多
</
span
>
<
span
className=
"iconfont icon"
style=
{
{
color
:
"#2966FF"
}
}
>

<
span
className=
'more-operate'
>
<
span
className=
'operate-text'
>
更多
</
span
>
<
span
className=
'iconfont icon'
style=
{
{
color
:
'#2966FF'
}
}
>

</
span
>
</
span
>
</
Dropdown
>
</
div
>
</>
}
{
item
.
courseState
===
"EXPIRED"
&&
<
div
className=
"operate__item"
onClick=
{
()
=>
this
.
handleDelete
(
item
)
}
>
删除
</
div
>
}
)
}
{
item
.
courseState
===
'EXPIRED'
&&
(
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
handleDelete
(
item
)
}
>
删除
</
div
>
)
}
</
div
>
)
}
}
)
;
}
,
}
,
];
}
else
{
}
else
{
columns
=
[
{
title
:
"直播课"
,
width
:
"25%"
,
key
:
"course"
,
dataIndex
:
"courseName"
,
title
:
'直播课'
,
width
:
'25%'
,
key
:
'course'
,
dataIndex
:
'courseName'
,
render
:
(
val
,
record
)
=>
{
let
hasCover
=
false
;
return
(
<
div
className=
"record__item"
>
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
"COVER"
){
hasCover
=
true
;
return
<
img
className=
"course-cover"
src=
{
item
.
mediaUrl
}
/>
}
})
}
{
!
hasCover
&&
<
img
className=
"course-cover"
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
<
div
className=
'record__item'
>
{
record
.
courseMediaVOS
.
map
((
item
,
index
)
=>
{
if
(
item
.
contentType
===
'COVER'
)
{
hasCover
=
true
;
return
<
img
className=
'course-cover'
src=
{
item
.
mediaUrl
}
/>;
}
})
}
{
!
hasCover
&&
<
img
className=
'course-cover'
src=
{
'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'
}
/>
}
<
div
>
{
record
.
courseName
.
length
>
17
?
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
"course-name"
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
:
<
div
className=
"course-name"
>
{
record
.
courseName
}
</
div
>
}
<
div
>
<
span
className=
"course-time"
>
{
formatDate
(
"YYYY-MM-DD H:i"
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
"H:i"
,
parseInt
(
record
.
endTime
))
}
</
span
>
<
span
className=
"course-status"
style=
{
{
color
:
courseStateShow
[
record
.
courseState
].
color
,
border
:
`1px solid ${courseStateShow[record.courseState].color}`
}
}
>
{
courseStateShow
[
record
.
courseState
].
title
}
</
span
>
</
div
>
<
div
className=
"teacher-assistant"
>
{
record
.
teacherName
.
length
>
4
?
{
record
.
courseName
.
length
>
17
?
(
<
Tooltip
title=
{
record
.
courseName
}
>
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
</
Tooltip
>
)
:
(
<
div
className=
'course-name'
>
{
record
.
courseName
}
</
div
>
)
}
<
div
>
<
span
className=
'course-time'
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
parseInt
(
record
.
startTime
))
}
~
{
formatDate
(
'H:i'
,
parseInt
(
record
.
endTime
))
}
</
span
>
<
span
className=
'course-status'
style=
{
{
color
:
courseStateShow
[
record
.
courseState
].
color
,
border
:
`1px solid ${courseStateShow[record.courseState].color}`
}
}
>
{
courseStateShow
[
record
.
courseState
].
title
}
</
span
>
</
div
>
<
div
className=
'teacher-assistant'
>
{
record
.
teacherName
.
length
>
4
?
(
<
Tooltip
title=
{
record
.
teacherName
}
>
<
span
className=
"teacher"
>
讲师:
{
record
.
teacherName
}
</
span
>
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
</
Tooltip
>
:
<
span
className=
"teacher"
>
讲师:
{
record
.
teacherName
}
</
span
>
}
{
record
.
admins
.
length
>
0
&&
<>
<
span
className=
"split"
>
|
</
span
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
"assistant"
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
adminName
}
{
(
index
<
record
.
admins
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
)
:
(
<
span
className=
'teacher'
>
讲师:
{
record
.
teacherName
}
</
span
>
)
}
{
record
.
admins
.
length
>
0
&&
(
<>
<
span
className=
'split'
>
|
</
span
>
{
this
.
handleAdminName
(
record
.
admins
).
length
>
4
?
(
<
Tooltip
title=
{
this
.
handleAdminName
(
record
.
admins
)
}
>
<
span
className=
'assistant'
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
);
})
}
</
span
>
</
Tooltip
>
)
:
(
<
span
className=
'assistant'
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
adminName
}
{
index
<
record
.
admins
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
</
Tooltip
>
:
<
span
className=
"assistant"
>
助教:
{
record
.
admins
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
adminName
}
{
(
index
<
record
.
admins
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
</
span
>
}
</>
}
</
div
>
);
})
}
</
span
>
)
}
</>
)
}
</
div
>
</
div
>
</
div
>
)
}
)
;
}
,
},
{
title
:
"课程分类"
,
width
:
"10%"
,
key
:
"couseCatalog"
,
dataIndex
:
"couseCatalog"
,
title
:
'课程分类'
,
width
:
'10%'
,
key
:
'couseCatalog'
,
dataIndex
:
'couseCatalog'
,
render
:
(
val
,
item
)
=>
{
return
(
<
div
className=
"categoryName"
>
{
item
.
categoryName
}
</
div
>
)
return
<
div
className=
'categoryName'
>
{
item
.
categoryName
}
</
div
>;
},
},
{
title
:
"课件管理"
,
width
:
"8%"
,
key
:
"courseware"
,
dataIndex
:
"courseware"
,
title
:
'课件管理'
,
width
:
'8%'
,
key
:
'courseware'
,
dataIndex
:
'courseware'
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
className=
"courseware"
<
span
className=
'courseware'
onClick=
{
()
=>
{
this
.
setState
({
editData
:
item
,
openCoursewareModal
:
true
,
});
}
}
>
{
item
.
courseDocumentCount
}
个
</
span
>
this
.
setState
({
editData
:
item
,
openCoursewareModal
:
true
,
});
}
}
>
{
item
.
courseDocumentCount
}
个
</
span
>
);
},
},
{
title
:
'上课数据'
,
width
:
"9%"
,
key
:
"quota"
,
dataIndex
:
"quota"
,
width
:
'9%'
,
key
:
'quota'
,
dataIndex
:
'quota'
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
className=
"iconfont icon quota-icon"
onClick=
{
()
=>
{
this
.
handleLinkToClassData
(
item
)
}
}
>

</
span
>
<
span
className=
'iconfont icon quota-icon'
onClick=
{
()
=>
{
this
.
handleLinkToClassData
(
item
);
}
}
>

</
span
>
);
},
},
{
title
:
'创建时间'
,
width
:
"9%"
,
key
:
"created"
,
dataIndex
:
"created"
,
width
:
'9%'
,
key
:
'created'
,
dataIndex
:
'created'
,
sorter
:
true
,
render
:
(
val
,
item
)
=>
{
return
(
<
span
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>
);
return
<
span
>
{
formatDate
(
'YYYY-MM-DD H:i'
,
val
)
}
</
span
>;
},
},
{
title
:
'关联项'
,
width
:
"15%"
,
key
:
"planList"
,
dataIndex
:
"planList"
,
width
:
'15%'
,
key
:
'planList'
,
dataIndex
:
'planList'
,
render
:
(
val
,
record
)
=>
{
return
(
<
div
className=
"related-task"
>
{
record
.
relatedPlanList
?
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
"top"
arrowPointAtCenter
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
return
<
span
>
{
item
.
planName
}
{
(
index
<
record
.
relatedPlanList
.
length
-
1
)
&&
(<
span
>
、
</
span
>)
}
</
span
>
})
}
</
Tooltip
>
:
<
span
></
span
>
}
return
(
<
div
className=
'related-task'
>
{
record
.
relatedPlanList
?
(
<
Tooltip
title=
{
this
.
handlePlanName
(
record
.
relatedPlanList
)
}
placement=
'top'
arrowPointAtCenter
>
{
record
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
return
(
<
span
>
{
item
.
planName
}
{
index
<
record
.
relatedPlanList
.
length
-
1
&&
<
span
>
、
</
span
>
}{
' '
}
</
span
>
);
})
}
</
Tooltip
>
)
:
(
<
span
></
span
>
)
}
</
div
>
)
)
;
},
},
];
}
this
.
setState
({
columns
})
}
handleAdminName
=
(
adminArray
)
=>
{
let
adminStr
=
""
;
adminArray
.
map
((
item
,
index
)
=>
{
if
(
index
<
adminArray
.
length
-
1
)
{
this
.
setState
({
columns
})
;
}
;
handleAdminName
=
(
adminArray
)
=>
{
let
adminStr
=
''
;
adminArray
.
map
((
item
,
index
)
=>
{
if
(
index
<
adminArray
.
length
-
1
)
{
adminStr
=
adminStr
+
item
.
adminName
+
'、'
;
}
else
{
adminStr
=
adminStr
+
item
.
adminName
}
else
{
adminStr
=
adminStr
+
item
.
adminName
;
}
})
return
adminStr
}
})
;
return
adminStr
;
}
;
handlePlanName
=
(
planArray
)
=>
{
let
planStr
=
""
;
planArray
.
map
((
item
,
index
)
=>
{
if
(
index
<
planArray
.
length
-
1
)
{
handlePlanName
=
(
planArray
)
=>
{
let
planStr
=
''
;
planArray
.
map
((
item
,
index
)
=>
{
if
(
index
<
planArray
.
length
-
1
)
{
planStr
=
planStr
+
item
.
planName
+
'、'
;
}
else
{
planStr
=
planStr
+
item
.
planName
}
else
{
planStr
=
planStr
+
item
.
planName
;
}
})
return
planStr
}
})
;
return
planStr
;
}
;
renderMoreOperate
=
(
item
)
=>
{
return
(
<
div
className=
"live-course-more-menu"
>
{
(
User
.
getUserRole
()
===
"CloudManager"
||
User
.
getUserRole
()
===
"StoreManager"
)
&&
<
div
className=
"operate__item"
onClick=
{
()
=>
this
.
handleRelatedModalShow
(
item
)
}
>
关联培训计划
</
div
>
}
<
div
className=
"operate__item"
onClick=
{
()
=>
this
.
toEditCoursePage
(
item
)
}
>
编辑
</
div
>
{
item
.
courseState
!==
"STARTING"
&&
<
div
className=
"operate__item"
onClick=
{
()
=>
this
.
handleDelete
(
item
)
}
>
删除
</
div
>
}
<
div
className=
'live-course-more-menu'
>
{
(
User
.
getUserRole
()
===
'CloudManager'
||
User
.
getUserRole
()
===
'StoreManager'
)
&&
(
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
handleRelatedModalShow
(
item
)
}
>
关联培训计划
</
div
>
)
}
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
toEditCoursePage
(
item
)
}
>
编辑
</
div
>
{
item
.
courseState
!==
'STARTING'
&&
(
<
div
className=
'operate__item'
onClick=
{
()
=>
this
.
handleDelete
(
item
)
}
>
删除
</
div
>
)
}
</
div
>
)
}
handleDelete
=
(
record
)
=>
{
return
confirm
({
)
;
}
;
handleDelete
=
(
record
)
=>
{
return
confirm
({
title
:
'你确定要删除直播课?'
,
content
:
'删除后,学员将不能观看直播课/回放'
,
icon
:
<
span
className=
"icon iconfont default-confirm-icon"
>

</
span
>,
icon
:
<
span
className=
'icon iconfont default-confirm-icon'
>

</
span
>,
okText
:
'删除'
,
okType
:
'danger'
,
cancelText
:
'取消'
,
width
:
440
,
height
:
188
,
width
:
440
,
height
:
188
,
onOk
:
()
=>
{
this
.
deleteConfirm
(
record
);
}
})
}
deleteConfirm
=
(
item
)
=>
{
const
params
=
{
"liveCourseId"
:
item
.
liveCourseId
,
}
CourseService
.
delLiveCloudCourse
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
message
.
success
(
"已删除"
);
}
,
})
;
}
;
deleteConfirm
=
(
item
)
=>
{
const
params
=
{
liveCourseId
:
item
.
liveCourseId
,
}
;
CourseService
.
delLiveCloudCourse
(
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
message
.
success
(
'已删除'
);
this
.
props
.
onChange
();
}
})
}
toEditCoursePage
=
(
item
)
=>
{
})
;
}
;
toEditCoursePage
=
(
item
)
=>
{
window
.
RCHistory
.
push
({
pathname
:
`/create-live-course?type=edit&id=
${
item
.
liveCourseId
}
`
,
})
}
refreshCourseList
=
()
=>
{
})
;
}
;
refreshCourseList
=
()
=>
{
this
.
props
.
onChange
(
this
.
props
.
query
);
}
//进入直播间
}
;
//进入直播间
handleEnterLiveRoom
=
(
item
)
=>
{
if
(
item
.
startTime
-
Date
.
now
()
>
1800000
)
{
Modal
.
warning
({
title
:
"你来得太早了"
,
title
:
'你来得太早了'
,
okText
:
'我知道了'
,
content
:
"请于开始上课前30分钟来直播上课。"
,
content
:
'请于开始上课前30分钟来直播上课。'
,
icon
:
(
<
span
className=
"icon iconfont default-confirm-icon"
style=
{
{
color
:
"#FFBB54 !important"
}
}
>

<
span
className=
'icon iconfont default-confirm-icon'
style=
{
{
color
:
'#FFBB54 !important'
}
}
>

</
span
>
),
});
}
else
{
CourseService
.
getLiveCloudCourseDetail
({
liveCourseId
:
item
.
liveCourseId
,
})
.
then
((
res
)
=>
{
const
url
=
`xmqx://liveCourseId=
${
item
.
liveCourseId
}
`
;
if
(
res
.
result
.
courseState
===
"FINISH"
)
{
Modal
.
warning
({
title
:
"刷新页面"
,
icon
:
<
QuestionCircleOutlined
/>,
content
:
"课次已结束,请刷新一下"
,
onOk
:
()
=>
{
this
.
refreshCourseList
();
}
});
}
else
{
this
.
setState
({
url
,
openDownloadModal
:
true
});
}
});
CourseService
.
getLiveCloudCourseDetail
({
liveCourseId
:
item
.
liveCourseId
,
}).
then
((
res
)
=>
{
const
url
=
`xmqx://liveCourseId=
${
item
.
liveCourseId
}
`
;
if
(
res
.
result
.
courseState
===
'FINISH'
)
{
Modal
.
warning
({
title
:
'刷新页面'
,
icon
:
<
QuestionCircleOutlined
/>,
content
:
'课次已结束,请刷新一下'
,
onOk
:
()
=>
{
this
.
refreshCourseList
();
},
});
}
else
{
this
.
setState
({
url
,
openDownloadModal
:
true
});
}
});
}
}
}
;
onShowSizeChange
=
(
current
,
size
)
=>
{
if
(
current
==
size
)
{
return
return
;
}
let
_query
=
this
.
props
.
query
let
_query
=
this
.
props
.
query
;
_query
.
size
=
size
;
this
.
props
.
onChange
(
_query
)
}
this
.
props
.
onChange
(
_query
)
;
}
;
getDownloadVersion
()
{
const
isMac
=
/macintosh|mac os x/i
.
test
(
navigator
.
userAgent
);
// 判断学员系统
let
platform
;
if
(
!
isMac
)
{
platform
=
1
}
else
{
platform
=
4
if
(
!
isMac
)
{
platform
=
1
;
}
else
{
platform
=
4
;
}
BaseService
.
getLastedVersion
({
model
:
5
,
platform
})
.
then
((
res
)
=>
{
BaseService
.
getLastedVersion
({
model
:
5
,
platform
}).
then
((
res
)
=>
{
const
{
result
=
{}
}
=
res
;
this
.
setState
({
downloadUrl
:
result
.
releaseUrl
});
})
});
}
handleViewPlayBack
=
(
item
)
=>
{
let
htmlUrl
;
if
(
item
.
teacherId
===
User
.
getUserId
())
{
if
(
item
.
teacherId
===
User
.
getUserId
())
{
htmlUrl
=
`
${
LIVE_SHARE
}
replay/
${
item
.
liveCourseId
}
?teacherId=
${
User
.
getUserId
()}
&id=
${
User
.
getStoreId
()}
`
;
}
else
if
(
_
.
pluck
(
item
.
admins
,
"adminId"
).
includes
(
User
.
getUserId
()))
{
}
else
if
(
_
.
pluck
(
item
.
admins
,
'adminId'
).
includes
(
User
.
getUserId
()))
{
htmlUrl
=
`
${
LIVE_SHARE
}
replay/
${
item
.
liveCourseId
}
?userId=
${
User
.
getUserId
()}
&id=
${
User
.
getStoreId
()}
`
;
}
else
{
}
else
{
htmlUrl
=
`
${
LIVE_SHARE
}
replay/
${
item
.
liveCourseId
}
?id=
${
User
.
getStoreId
()}
`
;
}
window
.
open
(
htmlUrl
);
}
handleRelatedModalShow
=
(
item
)
=>
{
};
handleRelatedModalShow
=
(
item
)
=>
{
const
selectPlanList
=
{};
if
(
item
.
relatedPlanList
)
{
item
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
selectPlanList
[
item
.
planId
]
=
{}
if
(
item
.
relatedPlanList
)
{
item
.
relatedPlanList
.
map
((
item
,
index
)
=>
{
selectPlanList
[
item
.
planId
]
=
{}
;
selectPlanList
[
item
.
planId
].
planId
=
item
.
planId
;
selectPlanList
[
item
.
planId
].
taskBaseVOList
=
[{
taskId
:
item
.
taskId
}];
return
item
})
selectPlanList
[
item
.
planId
].
taskBaseVOList
=
[{
taskId
:
item
.
taskId
}];
return
item
;
})
;
}
this
.
setState
({
RelatedPlanModalVisible
:
true
,
selectCourseId
:
item
.
liveCourseId
,
selectPlanList
:
selectPlanList
})
}
closeRelatedPlanModalVisible
=
()
=>
{
this
.
setState
({
RelatedPlanModalVisible
:
false
})
}
onChangeSelectPlanList
=
(
selectPlanList
)
=>
{
RelatedPlanModalVisible
:
true
,
selectCourseId
:
item
.
liveCourseId
,
selectPlanList
:
selectPlanList
,
});
};
closeRelatedPlanModalVisible
=
()
=>
{
this
.
setState
({
selectPlanList
:
selectPlanList
})
}
onC
onfirmSelectPlanList
=
()
=>
{
RelatedPlanModalVisible
:
false
,
})
;
}
;
onC
hangeSelectPlanList
=
(
selectPlanList
)
=>
{
this
.
setState
({
RelatedPlanModalVisible
:
false
},()
=>
{
this
.
props
.
onChange
();})
}
selectPlanList
:
selectPlanList
,
});
};
onConfirmSelectPlanList
=
()
=>
{
this
.
setState
(
{
RelatedPlanModalVisible
:
false
,
},
()
=>
{
this
.
props
.
onChange
();
}
);
};
handleChangeTable
=
(
pagination
,
filters
,
sorter
)
=>
{
const
{
columnKey
,
order
}
=
sorter
;
const
{
query
}
=
this
.
props
;
let
_columnKey
;
let
_columnKey
;
let
_order
;
// 按创建时间升序排序
if
(
columnKey
===
'created'
&&
order
===
'ascend'
)
{
_columnKey
=
"CREATED"
;
_order
=
'SORT_ASC'
;
}
if
(
columnKey
===
'created'
&&
order
===
'ascend'
)
{
_columnKey
=
'CREATED'
;
_order
=
'SORT_ASC'
;
}
// 按创建时间降序排序
if
(
columnKey
===
'created'
&&
order
===
'descend'
)
{
_columnKey
=
"CREATED"
;
_order
=
'SORT_DESC'
;}
if
(
columnKey
===
'created'
&&
order
===
'descend'
)
{
_columnKey
=
'CREATED'
;
_order
=
'SORT_DESC'
;
}
const
_query
=
{
...
query
,
sortMap
:
{}
sortMap
:
{},
};
_query
.
sortMap
[
_columnKey
]
=
_order
;
_query
.
sortMap
[
_columnKey
]
=
_order
;
this
.
props
.
onChange
(
_query
);
}
}
;
render
()
{
const
{
total
,
query
,
courseList
,
loading
}
=
this
.
props
;
const
{
total
,
query
,
courseList
,
loading
}
=
this
.
props
;
const
{
current
,
size
}
=
query
;
const
{
openDownloadModal
,
downloadUrl
,
url
,
columns
,
openCoursewareModal
,
editData
,
RelatedPlanModalVisible
,
selectCourseId
,
selectPlanList
}
=
this
.
state
;
const
{
openDownloadModal
,
downloadUrl
,
url
,
columns
,
openCoursewareModal
,
editData
,
RelatedPlanModalVisible
,
selectCourseId
,
selectPlanList
}
=
this
.
state
;
const
{
match
}
=
this
.
props
;
return
(
<
div
className=
"live-course-list"
>
<
div
className=
'live-course-list'
>
<
Table
bordered
size=
"middle"
size=
'middle'
pagination=
{
false
}
columns=
{
columns
}
loading=
{
loading
}
...
...
@@ -758,21 +794,21 @@ class LiveCourseList extends React.Component {
onChange=
{
this
.
handleChangeTable
}
rowKey=
{
(
row
)
=>
row
.
liveCourseId
}
/>
{
total
>
0
&&
<
div
className=
"box-footer"
>
{
total
>
0
&&
(
<
div
className=
'box-footer'
>
<
PageControl
current=
{
current
-
1
}
pageSize=
{
size
}
total=
{
parseInt
(
total
)
}
toPage=
{
(
page
)
=>
{
const
_query
=
{
...
query
,
current
:
page
+
1
};
this
.
props
.
onChange
(
_query
)
const
_query
=
{
...
query
,
current
:
page
+
1
};
this
.
props
.
onChange
(
_query
)
;
}
}
onShowSizeChange=
{
this
.
onShowSizeChange
}
/>
</
div
>
}
{
this
.
state
.
shareLiveModal
}
)
}
{
this
.
state
.
shareLiveModal
}
{
openCoursewareModal
&&
(
<
ManageCoursewareModal
data=
{
editData
}
...
...
@@ -789,13 +825,13 @@ class LiveCourseList extends React.Component {
onCancel=
{
()
=>
{
this
.
setState
({
url
:
''
,
openDownloadModal
:
false
});
openDownloadModal
:
false
,
});
}
}
/>
)
}
{
RelatedPlanModalVisible
&&
<
RelatedPlanModal
{
RelatedPlanModalVisible
&&
(
<
RelatedPlanModal
onClose=
{
this
.
closeRelatedPlanModalVisible
}
visible=
{
RelatedPlanModalVisible
}
selectCourseId=
{
selectCourseId
}
...
...
@@ -803,12 +839,12 @@ class LiveCourseList extends React.Component {
onChange=
{
this
.
onChangeSelectPlanList
}
onConfirm=
{
this
.
onConfirmSelectPlanList
}
/>
}
<
iframe
src=
{
url
}
style=
{
{
display
:
"none"
}
}
/>
)
}
<
iframe
src=
{
url
}
style=
{
{
display
:
'none'
}
}
/>
<
Route
path=
{
`${match.url}/live-course-data`
}
component=
{
DataList
}
/>
</
div
>
)
)
;
}
}
export
default
withRouter
(
LiveCourseList
);
\ No newline at end of file
export
default
withRouter
(
LiveCourseList
);
src/modules/plan-manage/components/PlanFilter.jsx
View file @
0794a910
...
...
@@ -6,7 +6,7 @@
* @Description: 大班直播、互动班课列表的筛选组件
*/
import
React
,
{
useState
,
use
Ref
,
use
Effect
}
from
'react'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
{
Row
,
Input
,
Select
,
Tooltip
}
from
'antd'
;
import
RangePicker
from
"@/modules/common/DateRangePicker"
;
...
...
@@ -86,7 +86,7 @@ function PlanFilter(props) {
};
StoreService
.
getStoreUserBasicPage
(
_query
).
then
((
res
)
=>
{
const
{
result
=
{}
}
=
res
;
const
{
records
=
[],
total
=
0
,
hasNext
}
=
result
;
const
{
records
=
[],
hasNext
}
=
result
;
const
list
=
current
>
1
?
creatorList
.
concat
(
records
)
:
records
;
setHasNext
(
hasNext
);
setCreatorList
(
list
);
...
...
src/modules/root/Header.jsx
View file @
0794a910
/*
* @Author: 吴文洁
* @Date: 2019-09-10 18:26:03
* @LastEditors:
Please set LastEditors
* @LastEditTime: 2021-06-2
4 09:52:03
* @LastEditors:
fusanqiasng
* @LastEditTime: 2021-06-2
5 14:33:49
* @Description:
*/
import
React
,
{
useRef
,
useContext
,
useEffect
,
useState
}
from
'react'
;
...
...
@@ -271,14 +271,14 @@ function Header(props) {
onChange=
{
(
e
)
=>
{
setStoreId
(
e
.
target
.
value
);
User
.
setStoreId
(
e
.
target
.
value
);
list
.
map
((
item
)
=>
{
if
(
item
.
id
===
e
.
target
.
value
)
{
list
.
map
((
item
)
=>
{
if
(
item
.
id
===
e
.
target
.
value
)
{
User
.
setStoreUserId
(
item
.
storeUserId
);
}
})
})
;
User
.
setUserId
(
User
.
getUserId
());
User
.
setToken
(
User
.
getToken
());
User
.
setEnterpriseId
(
User
.
getEnterpriseId
())
User
.
setEnterpriseId
(
User
.
getEnterpriseId
())
;
window
.
RCHistory
.
push
(
'/home'
);
window
.
location
.
reload
();
}
}
...
...
src/modules/root/Login.jsx
View file @
0794a910
...
...
@@ -12,6 +12,10 @@ import user from '@/common/js/user';
const
{
TabPane
}
=
Tabs
;
function
Login
(
props
)
{
/**
* 手机登陆入口,暂时隐藏,此页注释代码勿删
*/
// const [phone, setPhone] = useState(''); // 登录手机号
// const [phoneverify, setPhoneverify] = useState(''); // 密码登录验证码
// const [openCheck1, setOpenCheck1] = useState(false);
...
...
@@ -22,6 +26,10 @@ function Login(props) {
// const [phoneError, setPhoneError] = useState(false);
// const [checkObject1, setCheckObject1] = useState({});
/**
* 手机登陆入口,暂时隐藏,此页注释代码勿删
*/
useEffect
(()
=>
{
const
enterpriseId
=
getParameterByName
(
'enterpriseId'
);
const
userId
=
getParameterByName
(
'userId'
);
...
...
@@ -51,19 +59,24 @@ function Login(props) {
userId
,
};
BaseService
.
getWXWorkLoginNoCheck
(
params
).
then
((
res
)
=>
{
User
.
setUserId
(
res
.
result
.
loginInfo
.
userId
)
User
.
setToken
(
res
.
result
.
loginInfo
.
xmToken
)
User
.
setEnterpriseId
(
res
.
result
.
enterpriseId
)
window
.
currentStoreUserInfo
=
{}
User
.
setUserId
(
res
.
result
.
loginInfo
.
userId
)
;
User
.
setToken
(
res
.
result
.
loginInfo
.
xmToken
)
;
User
.
setEnterpriseId
(
res
.
result
.
enterpriseId
)
;
window
.
currentStoreUserInfo
=
{}
;
window
.
currentStoreUserInfo
.
userId
=
res
.
result
.
loginInfo
.
userId
;
window
.
currentStoreUserInfo
.
token
=
res
.
result
.
loginInfo
.
xmToken
;
window
.
currentStoreUserInfo
.
enterpriseId
=
res
.
result
.
enterpriseId
;
User
.
setIdentifier
(
res
.
result
.
identifier
)
User
.
setIdentifier
(
res
.
result
.
identifier
)
;
window
.
RCHistory
.
push
({
pathname
:
`/switch-route`
,
});
});
}
/**
* 手机登陆入口,暂时隐藏,此页注释代码勿删
*/
// async function checkAccount(code, callback = () => {}) {
// callback();
// }
...
...
@@ -151,6 +164,10 @@ function Login(props) {
// });
// }
/**
* 手机登陆入口,暂时隐藏,此页注释代码勿删
*/
return
(
<
div
className=
'login-page'
>
<
div
className=
'logo-img-box'
>
...
...
@@ -171,6 +188,91 @@ function Login(props) {
<
TabPane
tab=
'企业微信登录'
key=
'1'
>
<
WechatLogin
></
WechatLogin
>
</
TabPane
>
{
/* 手机登陆入口,暂时隐藏,此页注释代码勿删 */
}
{
/* <TabPane tab='手机号登录' key='2'>
<div className='login-form'>
<div className='form'>
<div className='username' style={{ marginBottom: 16 }}>
<Input
type='phone'
autoComplete='off'
name='account'
maxLength={11}
placeholder="请输入手机号"
value={phone}
onChange={(e) => {
setPhone(e.target.value)
}}
/>
</div>
<div className='error-message'></div>
<div className='phoneverify'>
<Input
type="text"
id="phoneverify"
name="phoneverify"
placeholder="请输入验证码"
autoComplete="off"
value={phoneverify}
maxLength={4}
onChange={(e) => {
setPhoneverify(e.target.value)
}}
/>
<Popover
visible={openCheck1}
trigger='click'
title=''
content={
<div>
<span style={{ fontSize: '12px', color: '#999', marginBottom: 8, display: 'block' }}>请完成安全验证</span>
<CheckBeforeSendCode
callback={(data, nc) => {
setCheckObject1(nc)
checkAccount(1, (userType) => {
handleSendSMSCode(data, userType)
setTimeout(() => {
setOpenCheck1(false)
}, 500)
})
}}
/>
</div>
}
onVisibleChange={(value) => {
if (!value) {
setOpenCheck1(false)
}
}}
placement='bottomRight'>
<div
className='btn'
id='sendVerifyCode'
onClick={() => {
if (checking1) return
checkSend(1)
}}>
{codeText}
</div>
</Popover>
</div>
<div className='error-message'>{errorMessage}</div>
<div className='submit'>
<div className='btn'>
<span
id='loginIn'
onClick={() => {
handleSubmit()
}}>
登录
</span>
</div>
</div>
</div>
</div>
</TabPane> */
}
{
/* 手机登陆入口,暂时隐藏,此页注释代码勿删 */
}
</
Tabs
>
</
div
>
</
div
>
...
...
src/modules/root/Menu.less
View file @
0794a910
...
...
@@ -64,7 +64,7 @@
.icon-img{
width:18px;
height:18px;
margin-right:
1
6px;
margin-right:6px;
}
.listType {
width: 5px;
...
...
src/modules/root/Menu.tsx
View file @
0794a910
import
React
,
{
Key
,
useContext
,
useEffect
,
useRef
,
useState
}
from
'react'
;
import
React
,
{
Key
,
useContext
,
useEffect
,
useRef
,
useState
,
useMemo
}
from
'react'
;
import
{
withRouter
,
}
from
'react-router-dom'
;
import
{
Menu
}
from
'antd'
;
import
{
Menu
}
from
'antd'
;
import
{
menuList
}
from
'../../routes//config/menuList'
import
{
XMContext
}
from
'../../store/context'
;
import
Service
from
"@/common/js/service"
;
...
...
@@ -13,13 +13,14 @@ import "./Menu.less";
const
{
SubMenu
}
=
Menu
;
function
Aside
(
props
:
any
)
{
const
{
menuType
,
handleMenuType
}
=
props
const
{
menuType
,
handleMenuType
}
=
props
const
ctx
:
any
=
useContext
(
XMContext
);
const
[
selectKey
,
setSelectKey
]
=
useState
();
const
[
openKeys
,
setOpenKeys
]
=
useState
([
''
]);
const
[
topLogoUrl
,
setTopLogoUrl
]
=
useState
(
""
)
const
[
collapsed
,
setCollapsed
]
=
useState
(
false
)
const
rootSubmenuKeys
=
_
.
pluck
(
menuList
,
'groupCode'
);
useEffect
(()
=>
{
const
link
=
props
.
location
.
pathname
;
menuList
.
map
((
item
:
any
,
index
:
any
)
=>
{
...
...
@@ -36,28 +37,31 @@ function Aside(props: any) {
return
item
;
})
},
[
props
.
location
.
pathname
])
useEffect
(()
=>
{
useEffect
(()
=>
{
getTopLeftLogo
()
},[])
},
[])
function
getTopLeftLogo
()
{
if
(
User
.
getToken
())
{
StoreService
.
getStoreDetail
({
storeId
:
User
.
getStoreId
()
})
.
then
(
res
=>
{
if
(
_
.
isEmpty
(
res
.
result
.
logo
))
{
setTopLogoUrl
(
"https://image.xiaomaiketang.com/xm/fe4NCjr7XF.png"
)
}
else
{
setTopLogoUrl
(
res
.
result
.
logo
)
}
})
StoreService
.
getStoreDetail
({
storeId
:
User
.
getStoreId
()
})
.
then
(
res
=>
{
if
(
_
.
isEmpty
(
res
.
result
.
logo
))
{
setTopLogoUrl
(
"https://image.xiaomaiketang.com/xm/fe4NCjr7XF.png"
)
}
else
{
setTopLogoUrl
(
res
.
result
.
logo
)
}
})
}
}
function
toggleMenu
(
item
:
any
)
{
window
.
RCHistory
.
push
(
item
.
link
)
if
(
!
menuType
)
{
setOpenKeys
([])
}
}
function
onOpenChange
(
key
:
Key
[])
{
if
(
typeof
key
===
"string"
)
{
if
(
openKeys
.
includes
(
key
))
{
...
...
@@ -86,20 +90,27 @@ function Aside(props: any) {
setCollapsed
(
!
collapsed
)
}
const
openKeysConstrol
=
useMemo
(()
=>
{
return
{
[
menuType
?
'openKeys'
:
'defaultOpenKeys'
]:
openKeys
};
},
[
menuType
,
openKeys
])
return
(
<
div
id=
"left-container"
className=
{
menuType
?
"left-container"
:
"left-container left-container-vertical"
}
>
<
div
className=
"top-ctrl"
>
<
div
id=
"left-container"
className=
{
menuType
?
"left-container"
:
"left-container left-container-vertical"
}
>
<
div
className=
"top-ctrl"
>
<
div
className=
"topLogo"
>
{
menuType
&&
<
img
src=
{
topLogoUrl
}
alt=
""
className=
"img1"
></
img
>
}
{
menuType
&&
<
img
src=
{
topLogoUrl
}
alt=
""
className=
"img1"
></
img
>
}
</
div
>
<
div
className=
"menu-type-icon"
onClick=
{
handleMenu
}
>
<
div
className=
"menu-type-icon"
onClick=
{
handleMenu
}
>
{
menuType
?
(
<
span
className=
"icon iconfont"
...
...
@@ -114,57 +125,58 @@ function Aside(props: any) {
</
span
>
)
}
</
div
>
</
div
>
<
div
className=
"left"
>
<
div
className=
"nav"
>
<
Menu
style=
{
menuType
?
{
minHeight
:
"100%"
,
background
:
'#0E1935'
}:{
minHeight
:
"100%"
,
background
:
'#0E1935'
,
width
:
"56px"
}
}
selectedKeys=
{
selectKey
}
openKeys=
{
menuType
?
openKeys
:
[]
}
onOpenChange=
{
onOpenChange
}
inlineCollapsed=
{
collapsed
}
mode=
{
menuType
?
"inline"
:
"vertical"
}
>
{
menuList
.
map
((
item
:
any
,
index
:
any
)
=>
{
if
(
ctx
.
xmState
.
storeUserPermissionList
.
indexOf
(
item
.
groupCode
)
===
-
1
)
{
return
null
;
}
if
(
item
.
children
)
{
return
<
SubMenu
key=
{
item
.
groupCode
}
style=
{
{
marginTop
:
0
}
}
icon=
{
<
img
src=
{
item
.
img
}
className=
"icon-img"
></
img
>
}
title=
{
menuType
?
<
span
>
{
item
.
groupName
}
</
span
>
:
""
}
onTitleClick=
{
()
=>
onOpenChange
(
item
.
groupCode
)
}
>
{
item
.
children
.
map
((
_item
:
any
,
_index
:
any
)
=>
{
if
(
ctx
.
xmState
.
storeUserPermissionList
.
indexOf
(
_item
.
groupCode
)
===
-
1
)
{
return
null
;
}
return
<
Menu
.
Item
onClick=
{
()
=>
{
toggleMenu
(
_item
)
}
}
style=
{
{
marginTop
:
0
}
}
key=
{
_item
.
groupCode
+
index
+
_index
}
>
<
span
className=
"name"
>
{
_item
.
groupName
}
</
span
>
</
Menu
.
Item
>
})
}
</
SubMenu
>
}
else
{
return
<
Menu
.
Item
onClick=
{
()
=>
{
toggleMenu
(
item
)
}
}
key=
{
item
.
groupCode
}
icon=
{
<
img
src=
{
selectKey
===
item
.
groupCode
?
item
.
selectImg
:
item
.
img
}
className=
"icon-img"
></
img
>
}
>
{
menuType
?
item
.
groupName
:
""
}
</
Menu
.
Item
>
}
})
}
</
Menu
>
</
div
>
<
div
className=
"left"
>
<
div
className=
"nav"
>
<
Menu
{
...
openKeysConstrol
}
style=
{
menuType
?
{
minHeight
:
"100%"
,
background
:
'#0E1935'
}
:
{
minHeight
:
"100%"
,
background
:
'#0E1935'
,
width
:
"56px"
}
}
selectedKeys=
{
selectKey
}
onOpenChange=
{
onOpenChange
}
inlineCollapsed=
{
collapsed
}
mode=
{
menuType
?
"inline"
:
"vertical"
}
>
{
menuList
.
map
((
item
:
any
,
index
:
any
)
=>
{
if
(
ctx
.
xmState
.
storeUserPermissionList
.
indexOf
(
item
.
groupCode
)
===
-
1
)
{
return
null
;
}
if
(
item
.
children
)
{
return
<
SubMenu
key=
{
item
.
groupCode
}
style=
{
{
marginTop
:
0
}
}
icon=
{
<
img
src=
{
item
.
img
}
className=
"icon-img"
></
img
>
}
title=
{
menuType
?
<
span
>
{
item
.
groupName
}
</
span
>
:
""
}
onTitleClick=
{
()
=>
onOpenChange
(
item
.
groupCode
)
}
>
{
item
.
children
.
map
((
_item
:
any
,
_index
:
any
)
=>
{
if
(
ctx
.
xmState
.
storeUserPermissionList
.
indexOf
(
_item
.
groupCode
)
===
-
1
)
{
return
null
;
}
return
<
Menu
.
Item
onClick=
{
()
=>
{
toggleMenu
(
_item
)
}
}
style=
{
{
marginTop
:
0
}
}
key=
{
_item
.
groupCode
+
index
+
_index
}
>
<
span
className=
"name"
>
{
_item
.
groupName
}
</
span
>
</
Menu
.
Item
>
})
}
</
SubMenu
>
}
else
{
return
<
Menu
.
Item
onClick=
{
()
=>
{
toggleMenu
(
item
)
}
}
key=
{
item
.
groupCode
}
icon=
{
<
img
src=
{
selectKey
===
item
.
groupCode
?
item
.
selectImg
:
item
.
img
}
className=
"icon-img"
></
img
>
}
>
{
menuType
?
item
.
groupName
:
""
}
</
Menu
.
Item
>
}
})
}
</
Menu
>
</
div
>
</
div
>
</
div
>
);
...
...
src/modules/root/WechatLogin.tsx
View file @
0794a910
...
...
@@ -28,15 +28,11 @@ export default function WechatLogin(props: any) {
Service
.
Hades
(
'anon/hades/getTicket'
,
{}).
then
((
res
:
any
)
=>
{
setTicket
(
res
.
result
);
const
redirect
=
`
${
PATH
}
?ticket=
${
res
.
result
}
&appTermEnum=XIAOMAI_CLOUD_CLASS_PC_WEB_ADMIN&env=
${
process
.
env
.
DEPLOY_ENV
||
'dev'
}
`
;
// console.log(redirect)
// const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww409ccf9c6e31f19e&redirect_uri=${encodeURIComponent(redirect)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
// console.log(url)
const
qrcodeWrapDom
:
any
=
document
.
querySelector
(
'#qrcode'
);
let
qrnode
=
new
qrcode
({
text
:
redirect
,
correctLevel
:
2
,
size
:
180
,
// image: 'https://image.xiaomaiketang.com/xm/Newk4NrxKC.png',
image
:
'https://image.xiaomaiketang.com/xm/bFkRBz7teA.png'
,
imageSize
:
50
,
});
...
...
@@ -81,6 +77,10 @@ export default function WechatLogin(props: any) {
window
.
currentStoreUserInfo
.
token
=
_res
.
result
.
loginInfo
.
xmToken
;
window
.
currentStoreUserInfo
.
enterpriseId
=
_res
.
result
.
enterpriseId
;
User
.
setIdentifier
(
_res
.
result
.
identifier
);
window
.
currentStoreUserInfo
=
{}
window
.
currentStoreUserInfo
.
userId
=
_res
.
result
.
loginInfo
.
userId
;
window
.
currentStoreUserInfo
.
token
=
_res
.
result
.
loginInfo
.
xmToken
;
window
.
currentStoreUserInfo
.
enterpriseId
=
_res
.
result
.
enterpriseId
;
window
.
RCHistory
.
push
({
pathname
:
`/switch-route`
,
});
...
...
src/modules/store-manage/StoreDecorationPage.tsx
View file @
0794a910
...
...
@@ -2,13 +2,13 @@
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @LastEditors: wufan
* @LastEditTime: 2021-0
2-01 14:12:38
* @LastEditTime: 2021-0
6-21 11:17:44
* @Description: 学院装修页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
import
React
,
{
use
Effect
,
use
State
}
from
"react"
;
import
{
withRouter
,
Switch
,
Route
}
from
"react-router-dom"
;
import
React
,
{
useState
}
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
_
from
"underscore"
;
import
{
Tabs
}
from
"antd"
;
import
"./StoreDecorationPage.less"
;
...
...
@@ -16,9 +16,6 @@ import StoreH5DecorationTab from "./StoreH5DecorationTab";
import
StoreWebDecorationTab
from
"./StoreWebDecorationTab"
;
const
{
TabPane
}
=
Tabs
;
declare
var
window
:
any
;
interface
StoreDecoprationProps
{
match
:
{
url
:
string
;
...
...
@@ -27,7 +24,6 @@ interface StoreDecoprationProps {
function
StoreDecorationPage
(
props
:
StoreDecoprationProps
)
{
const
[
currentTab
,
setCurrentTab
]
=
useState
(
"h5"
);
const
{
match
}
=
props
;
return
(
<
div
className=
"page store-decoration-page"
>
...
...
@@ -36,7 +32,6 @@ function StoreDecorationPage(props: StoreDecoprationProps) {
<
Tabs
onChange=
{
(
key
)
=>
{
setCurrentTab
(
key
);
// window.RCHistory.push(`$
{
match
.
url
}
/store-decoration/
$
{
key
}
`);
}
}
activeKey=
{
currentTab
}
>
...
...
src/modules/store-manage/StoreH5DecorationTab.jsx
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @LastEditors: wufan
* @LastEditTime: 2021-0
5-28 16:20:26
* @LastEditTime: 2021-0
6-21 11:16:21
* @Description: web学院banner页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
...
...
@@ -10,8 +10,7 @@
import
React
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
_
from
"underscore"
;
// import PhotoClip from 'photoclip'
import
{
Table
,
Modal
,
message
,
Button
}
from
"antd"
;
import
{
Modal
,
message
,
Button
}
from
"antd"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
{
sortableContainer
,
...
...
@@ -24,6 +23,8 @@ import User from "@/common/js/user";
import
SelectPrepareFileModal
from
"@/modules/prepare-lesson/modal/SelectPrepareFileModal"
;
import
"./StoreDecorationPage.less"
;
import
Upload
from
"@/core/upload"
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college'
;
const
{
confirm
}
=
Modal
;
const
DragHandle
=
sortableHandle
(()
=>
(
...
...
@@ -391,7 +392,11 @@ class StoreH5Decoration extends React.Component {
</
Button
>
</
div
>
<
div
className=
"box-body"
>
<
Table
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
}
}
size=
{
"middle"
}
pagination=
{
false
}
dataSource=
{
storeDecorationlist
}
...
...
src/modules/store-manage/StoreWebDecorationTab.jsx
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: wufan
* @Date: 2020-11-30 10:47:38
* @LastEditors: wufan
* @LastEditTime: 2021-0
5-28 16:21:04
* @LastEditTime: 2021-0
6-21 11:16:31
* @Description: web学院banner页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
...
...
@@ -10,8 +10,7 @@
import
React
from
"react"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
_
from
"underscore"
;
// import PhotoClip from 'photoclip'
import
{
Table
,
Modal
,
message
,
Button
}
from
"antd"
;
import
{
Modal
,
message
,
Button
}
from
"antd"
;
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
{
sortableContainer
,
...
...
@@ -24,6 +23,8 @@ import User from "@/common/js/user";
import
SelectPrepareFileModal
from
"@/modules/prepare-lesson/modal/SelectPrepareFileModal"
;
import
"./StoreDecorationPage.less"
;
import
Upload
from
"@/core/upload"
;
import
{
XMTable
}
from
'@/components'
;
import
college
from
'@/common/lottie/college'
;
const
{
confirm
}
=
Modal
;
const
DragHandle
=
sortableHandle
(()
=>
(
...
...
@@ -389,7 +390,11 @@ class StoreWebDecoration extends React.Component {
</
Button
>
</
div
>
<
div
className=
"box-body"
>
<
Table
<
XMTable
renderEmpty=
{
{
image
:
college
,
description
:
'暂无数据'
}
}
size=
{
"middle"
}
pagination=
{
false
}
dataSource=
{
storeDecorationlist
}
...
...
src/modules/teach-tool/components/AnswerDescPage.jsx
View file @
0794a910
...
...
@@ -2,12 +2,12 @@
* @Author: yuananting
* @Date: 2021-04-08 15:50:52
* @LastEditors: wufan
* @LastEditTime: 2021-0
4-24 15:55:19
* @LastEditTime: 2021-0
6-21 11:24:48
* @Description: 助学工具-考试-答案详情
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
;
import
{
Route
,
withRouter
}
from
'react-router-dom'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
withRouter
}
from
'react-router-dom'
;
import
User
from
'@/common/js/user'
;
import
Service
from
'@/common/js/service'
;
import
Lottie
from
'lottie-web'
;
...
...
@@ -20,7 +20,6 @@ const NUM_TO_WORD_MAP = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
function
AnswerDescPage
(
props
)
{
const
examId
=
props
.
match
.
params
.
testId
.
replace
(
/
\?
.+/
,
''
);
const
paperId
=
window
.
getParameterByName
(
'paperId'
);
const
[
customerId
,
setCustomerId
]
=
useState
(
''
);
const
[
examDetail
,
setExamDetail
]
=
useState
({
examDesc
:
''
,
examDuration
:
0
,
...
...
@@ -155,68 +154,10 @@ function AnswerDescPage(props) {
setIsShowErrorPage
(
true
);
}
function
handleChangeActiveIndex
(
isPre
)
{
if
(
onlyError
)
{
if
(
isPre
&&
activeOrderIndex
!==
errorQuestionList
[
0
].
orderIndex
)
{
setActiveOrderIndex
(
errorQuestionList
[
activeIndex
-
1
].
orderIndex
);
setActiveIndex
(
activeIndex
-
1
);
}
else
if
(
!
isPre
&&
activeOrderIndex
!==
errorQuestionList
[
errorCount
-
1
].
orderIndex
)
{
setActiveOrderIndex
(
errorQuestionList
[
activeIndex
+
1
].
orderIndex
);
setActiveIndex
(
activeIndex
+
1
);
}
}
else
{
if
(
isPre
&&
activeOrderIndex
!==
0
)
{
setActiveOrderIndex
(
activeIndex
-
1
);
setActiveIndex
(
activeIndex
-
1
);
}
else
if
(
!
isPre
&&
activeOrderIndex
!==
questionList
.
length
-
1
)
{
setActiveOrderIndex
(
activeIndex
+
1
);
setActiveIndex
(
activeIndex
+
1
);
}
}
}
function
renderFooterText
()
{
if
(
onlyError
&&
errorCount
>
0
)
{
// 只看错题
return
(
<
div
className=
'footer-btn'
>
<
div
className=
'pre-next'
>
<
div
className=
{
`${activeOrderIndex === (errorQuestionList.length > 0 ? errorQuestionList[0].orderIndex : 0) ? 'disabled' : ''} pre`
}
onClick=
{
()
=>
handleChangeActiveIndex
(
true
)
}
>
<
span
className=
'icon iconfont'
>

</
span
>
<
div
className=
'text'
>
上一题
</
div
>
</
div
>
<
div
className=
{
`${activeOrderIndex === (errorQuestionList.length > 0 ? errorQuestionList[errorCount - 1].orderIndex : 0) ? 'disabled' : ''} next`
}
onClick=
{
()
=>
handleChangeActiveIndex
(
false
)
}
>
<
div
className=
'text'
>
下一题
</
div
>
<
span
className=
'icon iconfont'
>

</
span
>
</
div
>
</
div
>
</
div
>
);
}
else
if
(
!
onlyError
)
{
return
(
<
div
className=
'footer-btn'
>
<
div
className=
'pre-next'
>
<
div
className=
{
`${activeOrderIndex === 0 ? 'disabled' : ''} pre`
}
onClick=
{
()
=>
handleChangeActiveIndex
(
true
)
}
>
<
span
className=
'icon iconfont'
>

</
span
>
<
div
className=
'text'
>
上一题
</
div
>
</
div
>
<
div
className=
{
`${activeOrderIndex === questionList.length - 1 ? 'disabled' : ''} next`
}
onClick=
{
()
=>
handleChangeActiveIndex
(
false
)
}
>
<
div
className=
'text'
>
下一题
</
div
>
<
span
className=
'icon iconfont'
>

</
span
>
</
div
>
</
div
>
</
div
>
);
}
}
function
handleRenderQuestionItem
()
{
return
_
.
map
(
questionList
,
(
questionItem
,
questionIndex
)
=>
{
const
{
questionStemList
,
optionList
,
gapFillingAnswerList
,
questionAnswerDescList
,
questionType
,
score
,
questionId
,
orderIndex
}
=
questionItem
;
const
{
questionStemList
,
optionList
,
gapFillingAnswerList
,
questionType
,
score
,
questionId
,
orderIndex
}
=
questionItem
;
return
(
<
div
className=
{
`question-info-item`
}
>
{
renderStem
(
questionItem
,
questionStemList
,
questionType
,
score
,
orderIndex
,
questionId
,
gapFillingAnswerList
)
}
...
...
@@ -225,7 +166,6 @@ function AnswerDescPage(props) {
return
renderOption
(
optionItem
,
optionIndex
,
questionId
);
})
}
{
renderAnswerCompare
(
questionId
,
questionType
,
optionList
,
gapFillingAnswerList
)
}
{
/* {renderAnswerDesc(questionAnswerDescList)} */
}
</
div
>
);
});
...
...
@@ -503,133 +443,6 @@ function AnswerDescPage(props) {
}
}
// 渲染答案解析
function
renderAnswerDesc
(
questionAnswerDescList
)
{
const
textContent
=
_
.
filter
(
questionAnswerDescList
,
(
item
)
=>
{
return
item
.
type
===
'RICH_TEXT'
;
});
const
mediaContent
=
_
.
filter
(
questionAnswerDescList
,
(
item
)
=>
{
return
item
.
type
!==
'RICH_TEXT'
;
});
let
content
=
textContent
.
length
>
0
?
`
${
textContent
[
0
].
content
}
:`
:
''
;
let
textDom
=
(
<
div
key=
{
0
}
className=
'text-dom'
dangerouslySetInnerHTML=
{
{
__html
:
content
,
}
}
/>
);
return
(
<
div
className=
'desc-line__item'
>
{
textDom
}
{
renderAnswerDescMedia
(
mediaContent
)
}
</
div
>
);
}
// 渲染答案解析的多媒体
function
renderAnswerDescMedia
(
mediaContent
)
{
const
pictureMediaList
=
_
.
filter
(
mediaContent
,
(
mediaItem
)
=>
{
return
mediaItem
.
type
===
'PICTURE'
;
});
const
voiceMediaList
=
_
.
filter
(
mediaContent
,
(
mediaItem
)
=>
{
return
mediaItem
.
type
===
'VOICE'
;
});
const
audioMediaList
=
_
.
filter
(
mediaContent
,
(
mediaItem
)
=>
{
return
mediaItem
.
type
===
'AUDIO'
;
});
const
videoMediaList
=
_
.
filter
(
mediaContent
,
(
mediaItem
)
=>
{
return
mediaItem
.
type
===
'VIDEO'
;
});
return
(
<
div
className=
'desc-media-container'
>
{
pictureMediaList
.
length
>
0
&&
(
<
div
className=
'desc-picture-box'
>
{
_
.
map
(
pictureMediaList
,
(
pictureItem
,
pictureIndex
)
=>
{
let
{
content
}
=
pictureItem
;
return
(
<
div
className=
'picture-box'
key=
{
pictureIndex
}
>
<
img
className=
'img-box'
src=
{
content
}
onClick=
{
()
=>
handleScanFile
(
'JPG'
,
content
)
}
/>
</
div
>
);
})
}
</
div
>
)
}
{
audioMediaList
.
length
>
0
&&
(
<
div
className=
'desc-audio-box'
>
{
_
.
map
(
audioMediaList
,
(
audioItem
,
audioIndex
)
=>
{
let
{
content
,
size
}
=
audioItem
;
return
(
<
div
className=
'audio-box'
key=
{
audioIndex
}
>
<
XMAudio
forbidParse
url=
{
content
}
getDuration=
{
(
durationSize
)
=>
{
size
=
durationSize
;
}
}
index=
{
audioIndex
}
size=
{
size
||
1000
}
/>
</
div
>
);
})
}
</
div
>
)
}
{
voiceMediaList
.
length
>
0
&&
(
<
div
className=
'desc-audio-box'
>
{
_
.
map
(
voiceMediaList
,
(
voiceItem
,
voiceIndex
)
=>
{
let
{
content
,
size
}
=
voiceItem
;
return
(
<
div
className=
'audio-box'
key=
{
voiceIndex
}
>
<
XMAudio
forbidParse
url=
{
content
}
getDuration=
{
(
durationSize
)
=>
{
size
=
durationSize
;
}
}
index=
{
voiceIndex
}
size=
{
size
||
1000
}
/>
</
div
>
);
})
}
</
div
>
)
}
{
videoMediaList
.
length
>
0
&&
(
<
div
className=
'desc-video-box'
>
{
_
.
map
(
videoMediaList
,
(
videoItem
,
videoIndex
)
=>
{
let
{
content
}
=
videoItem
;
return
(
<
div
className=
'video-box'
key=
{
videoIndex
}
>
<
img
className=
'video-box_content'
src=
{
`${content}?x-oss-process=video/snapshot,t_0,m_fast`
}
/>
<
img
className=
'video-box_btn'
src=
'https://image.xiaomaiketang.com/xm/r5H8cYm4ch.png'
onClick=
{
()
=>
handleScanFile
(
'MP4'
,
content
)
}
/>
</
div
>
);
})
}
</
div
>
)
}
</
div
>
);
}
// 答题卡展开和收起
function
handleToggleQuestionCardShow
()
{
setIsShowQuestionCard
(
!
isShowQuestionCard
);
}
// 快速跳转题目
function
handleQuickActiveQuestion
(
orderIndex
,
answerIndex
)
{
setActiveOrderIndex
(
orderIndex
);
setActiveIndex
(
answerIndex
);
setIsShowQuestionCard
(
false
);
}
// 只选错题
function
chooseErrorAnswer
()
{
...
...
@@ -640,8 +453,6 @@ function AnswerDescPage(props) {
setQuestionList
(
!
onlyError
?
errorQuestionList
:
allQuestionList
);
}
const
{
totalQuestionCount
,
userCorrectQuestion
}
=
examDetail
;
let
sortedAnswerList
=
[];
let
userAnswerMap
=
{};
userAnswerList
.
forEach
((
item
)
=>
{
...
...
@@ -689,7 +500,6 @@ function AnswerDescPage(props) {
<
div
className=
'question-list-box'
>
{
handleRenderQuestionItem
()
}
</
div
>
</
div
>
</
If
>
{
/* {renderFooterText()} */
}
</
div
>
{
showScanFile
&&
(
<
ScanFileModal
...
...
src/modules/teach-tool/components/CourseCategoryManage.jsx
View file @
0794a910
...
...
@@ -2,7 +2,7 @@
* @Author: yuananting
* @Date: 2021-02-23 18:28:50
* @LastEditors: fusanqiasng
* @LastEditTime: 2021-06-
16 17:35:55
* @LastEditTime: 2021-06-
25 14:35:20
* @Description: 助学工具-课程分类
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
...
...
@@ -14,9 +14,11 @@ import AidToolService from '@/domains/aid-tool-domain/AidToolService';
import
User
from
'@/common/js/user'
;
import
{
Tree
,
Input
,
Space
,
Button
,
Menu
,
Dropdown
,
message
,
Modal
}
from
'antd'
;
import
ShowTips
from
'@/components/ShowTips'
;
import
LottieIcon
from
'@/components/LottieIcon'
;
const
{
DirectoryTree
}
=
Tree
;
const
{
Search
}
=
Input
;
const
{
confirm
}
=
Modal
;
class
CourseCategoryManage
extends
Component
{
constructor
(
props
)
{
super
(
props
);
...
...
@@ -567,16 +569,25 @@ class CourseCategoryManage extends Component {
<
ShowTips
message=
'为方便管理,该分类用于课程、培训计划、题库、知识库等模块,改动将同步各模块更新'
/>
</
div
>
<
div
className=
'course-category-tree'
>
<
DirectoryTree
expandedKeys=
{
expandedKeys
}
autoExpandParent=
{
autoExpandParent
}
onExpand=
{
this
.
onExpand
}
selectedKeys=
{
selectedKeys
}
onSelect=
{
this
.
onSelect
}
draggable
blockNode
onDrop=
{
this
.
onDrop
}
treeData=
{
treeData
}
></
DirectoryTree
>
{
<
Choose
>
<
When
condition=
{
treeData
.
length
!==
0
}
>
<
DirectoryTree
expandedKeys=
{
expandedKeys
}
autoExpandParent=
{
autoExpandParent
}
onExpand=
{
this
.
onExpand
}
selectedKeys=
{
selectedKeys
}
onSelect=
{
this
.
onSelect
}
draggable
blockNode
onDrop=
{
this
.
onDrop
}
treeData=
{
treeData
}
></
DirectoryTree
>
</
When
>
<
Otherwise
>
<
LottieIcon
title=
{
<
span
className=
'desc'
>
搜索无结果
</
span
>
}
type=
'search'
size=
{
150
}
/>
</
Otherwise
>
</
Choose
>
}
</
div
>
</
div
>
{
operateCourseCategoryModal
}
...
...
src/modules/teach-tool/components/CourseCategoryManage.less
View file @
0794a910
...
...
@@ -14,6 +14,12 @@
margin-top: 12px;
width: 900px;
border: 1px solid #e8e8e8;
.lottie-icon {
margin-top: 100px!important;
.desc {
color: #999!important;
}
}
.ant-tree.ant-tree-directory {
font-size: 14px;
font-weight: 400;
...
...
src/modules/teach-tool/examination-manager/Index.tsx
View file @
0794a910
import
React
,
{
useState
,
useRef
,
useEffect
,
useContext
}
from
'react'
;
import
{
Input
,
Select
,
DatePicker
,
Tooltip
,
Button
,
Table
,
Dropdown
,
Menu
,
Modal
}
from
'antd'
;
import
{
Input
,
Select
,
DatePicker
,
Tooltip
,
Button
,
Dropdown
,
Menu
,
Modal
}
from
'antd'
;
import
TeacherSelect
from
'@/modules/common/TeacherSelect'
;
import
{
Route
,
withRouter
}
from
'react-router-dom'
;
import
Service
from
'@/common/js/service'
;
...
...
@@ -14,8 +14,6 @@ import PreviewModal from './PreviewModal';
import
'./index.less'
;
const
{
RangePicker
}
=
DatePicker
;
const
{
Search
}
=
Input
;
const
{
Option
}
=
Select
;
interface
sortType
{
type
:
'ascend'
|
'descend'
|
null
|
undefined
;
}
...
...
@@ -42,9 +40,7 @@ function ExaminationManager(props: any) {
type
:
undefined
,
};
const
sortEnum
=
{};
const
{
match
}
=
props
;
const
sortState
:
any
=
false
;
const
ctx
:
any
=
useContext
(
XMContext
);
const
[
query
,
setQuery
]
=
useState
(
queryInit
);
const
[
expandFilter
,
setExpandFilter
]
=
useState
(
false
);
...
...
@@ -53,7 +49,6 @@ function ExaminationManager(props: any) {
const
[
field
,
setfield
]
=
useState
(
''
);
const
[
order
,
setOrder
]
=
useState
(
sortStatus
.
type
);
const
[
modal
,
setModal
]
=
useState
(
null
);
const
[
questionCntSort
,
setQuestionCntSort
]
=
useState
(
sortState
);
const
[
openPreviewModal
,
setOpenPreviewModal
]
=
useState
(
false
);
const
[
info
,
setInfo
]
=
useState
({
examDuration
:
0
});
const
queryRef
=
useRef
({});
...
...
@@ -76,7 +71,6 @@ function ExaminationManager(props: any) {
const
columns
=
[
{
title
:
'考试'
,
// fixed:fixStr.left,
width
:
320
,
dataIndex
:
'examName'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
...
...
@@ -279,9 +273,6 @@ function ExaminationManager(props: any) {
function
getList
()
{
const
_query
=
{
...
queryRef
.
current
};
// if(_query.examCreator){
// _query.examCreator =parseInt(_query.examCreator)
// }
Service
.
Hades
(
'public/hades/queryExamPageList'
,
{
...
_query
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment