Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-resource
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-resource
Commits
da112287
提交
da112287
authored
6月 22, 2022
作者:
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改bug
上级
c87335d5
隐藏空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
186 行增加
和
96 行删除
+186
-96
base.ts
src/api/base.ts
+1
-1
menus.ts
src/assets/menus.ts
+11
-9
AppVideoPlayer.vue
src/components/base/AppVideoPlayer.vue
+1
-1
PreviewFiles.vue
src/components/base/PreviewFiles.vue
+28
-12
Protocol.vue
src/components/base/Protocol.vue
+5
-5
useGetProjectList.ts
src/composables/useGetProjectList.ts
+2
-2
ViewCenter.vue
src/modules/resource/courseware/components/ViewCenter.vue
+11
-6
ViewTop.vue
src/modules/resource/courseware/components/ViewTop.vue
+42
-12
List.vue
src/modules/resource/courseware/views/List.vue
+7
-2
Update.vue
src/modules/resource/courseware/views/Update.vue
+1
-4
ViewCenter.vue
src/modules/resource/lessonplan/components/ViewCenter.vue
+11
-6
ViewTop.vue
src/modules/resource/lessonplan/components/ViewTop.vue
+9
-2
List.vue
src/modules/resource/lessonplan/views/List.vue
+7
-2
Update.vue
src/modules/resource/lessonplan/views/Update.vue
+2
-5
ViewCenter.vue
src/modules/resource/other/components/ViewCenter.vue
+11
-6
ViewTop.vue
src/modules/resource/other/components/ViewTop.vue
+9
-2
List.vue
src/modules/resource/other/views/List.vue
+7
-2
Update.vue
src/modules/resource/other/views/Update.vue
+1
-4
ViewCenter.vue
src/modules/resource/video/components/ViewCenter.vue
+11
-6
List.vue
src/modules/resource/video/views/List.vue
+7
-2
Update.vue
src/modules/resource/video/views/Update.vue
+2
-5
没有找到文件。
src/api/base.ts
浏览文件 @
da112287
...
@@ -55,6 +55,6 @@ export function getCategoryList(params: { type: string; category_name?: string }
...
@@ -55,6 +55,6 @@ export function getCategoryList(params: { type: string; category_name?: string }
}
}
// 获取项目列表
// 获取项目列表
export
function
getProjectList
(
params
:
{
organization_id
:
string
})
{
export
function
getProjectList
(
params
:
{
organization_id
?:
string
,
project_id
?
:
string
})
{
return
httpRequest
.
get
(
'/api/resource/v1/util/members'
,
{
params
})
return
httpRequest
.
get
(
'/api/resource/v1/util/members'
,
{
params
})
}
}
src/assets/menus.ts
浏览文件 @
da112287
import
type
{
IMenuItem
}
from
'@/types'
import
type
{
IMenuItem
}
from
'@/types'
import
{
VideoCamera
,
Suitcase
,
Collection
,
Files
,
Monitor
,
Edit
,
User
,
Filter
,
Coordinate
,
Notebook
,
Picture
}
from
'@element-plus/icons-vue'
import
{
Expand
,
Document
,
VideoCamera
,
Suitcase
,
Collection
,
Files
,
Monitor
,
Edit
,
User
,
Filter
,
Coordinate
,
Notebook
,
Picture
}
from
'@element-plus/icons-vue'
export
const
menus
:
IMenuItem
[]
=
[
export
const
menus
:
IMenuItem
[]
=
[
{
{
tag
:
'v1-resource'
,
tag
:
'v1-resource'
,
...
@@ -29,15 +29,17 @@ export const menus: IMenuItem[] = [
...
@@ -29,15 +29,17 @@ export const menus: IMenuItem[] = [
icon
:
Files
,
icon
:
Files
,
name
:
'其他资料'
,
name
:
'其他资料'
,
path
:
'/resource/other'
path
:
'/resource/other'
},
{
icon
:
Expand
,
name
:
'题库管理'
,
path
:
'/'
},
{
icon
:
Document
,
name
:
'试卷管理'
,
path
:
'/'
}
}
// {
// name: '题库',
// path: '/resource/question'
// },
// {
// name: '试卷',
// path: '/resource/exam'
// }
]
]
},
},
{
{
...
...
src/components/base/AppVideoPlayer.vue
浏览文件 @
da112287
<
template
>
<
template
>
<div
style=
"width:812;height:443px;position: relative;"
>
<div>
<video
ref=
"videoPlayer"
class=
"video-js vjs-default-skin vjs-big-play-centered vjs-16-9"
></video>
<video
ref=
"videoPlayer"
class=
"video-js vjs-default-skin vjs-big-play-centered vjs-16-9"
></video>
</div>
</div>
</
template
>
</
template
>
...
...
src/components/base/PreviewFiles.vue
浏览文件 @
da112287
...
@@ -20,18 +20,34 @@ if (props.url?.indexOf('.pdf') !== -1 || props.url?.indexOf('.txt') !== -1) {
...
@@ -20,18 +20,34 @@ if (props.url?.indexOf('.pdf') !== -1 || props.url?.indexOf('.txt') !== -1) {
</
script
>
</
script
>
<
template
>
<
template
>
<
iframe
<
div
class=
"max-w-h"
>
v-if=
"isShowType === 1"
<iframe
width=
"812
"
v-if=
"isShowType === 1
"
height=
"450
"
:src=
"`https://view.officeapps.live.com/op/view.aspx?src=$
{props.url}`
"
:src=
"`https://view.officeapps.live.com/op/view.aspx?src=$
{props.url}`"
>
</iframe>
>
</iframe
>
<embed
:src=
"props.url"
v-else-if=
"isShowType === 2"
/
>
<embed
width=
"812"
height=
"450"
:src=
"props.url"
v-else-if=
"isShowType === 2"
/
>
<video
v-else-if=
"isShowType === 3"
controls
id=
"video"
>
<video
v-else-if=
"isShowType === 3"
width=
"812"
height=
"433"
controls
id=
"video"
>
<source
:src=
"props.url"
/
>
<
source
:src=
"props.url"
/
>
<
/video
>
</vide
o>
<audio
v-else-if=
"isShowType === 4"
:src=
"props.url"
controls
></audi
o>
<audio
v-else-if=
"isShowType === 4"
:src=
"props.url"
controls
></audio
>
<img
v-else-if=
"isShowType === 5"
:src=
"props.url"
>
<
img
v-else-if=
"isShowType === 5"
:src=
"props.url"
style=
"max-width:812px;display: block;"
>
<
/div
>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.max-w-h
{
max-width
:
1200px
;
width
:
100%
;
height
:
500px
;
margin
:
0
auto
;
display
:
flex
;
justify-content
:
center
;
iframe
,
embed
,
video
{
width
:
100%
;
height
:
100%
;
}
img
{
width
:
100%
;
display
:
block
;
}
}
</
style
>
</
style
>
src/components/base/Protocol.vue
浏览文件 @
da112287
...
@@ -3,20 +3,20 @@ import PreviewFiles from './PreviewFiles.vue'
...
@@ -3,20 +3,20 @@ import PreviewFiles from './PreviewFiles.vue'
const
dialogVisible
=
ref
(
false
)
const
dialogVisible
=
ref
(
false
)
</
script
>
</
script
>
<
template
>
<
template
>
<div>
我已阅读并同意
<span
@
click=
"dialogVisible = true"
>
《紫荆教育用户入驻及网络教学资源协议》
</span></div>
<div>
我已阅读并同意
<span
class=
"red-color"
@
click=
"dialogVisible = true"
>
《紫荆教育用户入驻及网络教学资源协议》
</span>
</div>
<el-dialog
v-model=
"dialogVisible"
title=
"提示"
width=
"850px"
>
<el-dialog
v-model=
"dialogVisible"
title=
"提示"
width=
"850px"
>
<PreviewFiles
<PreviewFiles
url=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx"
url=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx"
></PreviewFiles>
></PreviewFiles>
<template
#
footer
>
<template
#
footer
>
<span
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
我已阅读并同意
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
我已阅读并同意
</el-button>
</span>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
</template>
</template>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
span
{
.red-color
{
color
:
#aa1941
;
color
:
#aa1941
;
}
}
</
style
>
</
style
>
src/composables/useGetProjectList.ts
浏览文件 @
da112287
import
{
getProjectList
}
from
'@/api/base'
import
{
getProjectList
}
from
'@/api/base'
export
function
useProjectList
(
id
?:
string
)
{
export
function
useProjectList
(
id
?:
string
,
projectId
?:
string
)
{
const
list
=
ref
([])
const
list
=
ref
([])
const
members
=
ref
([])
const
members
=
ref
([])
const
departmentList
=
ref
([])
const
departmentList
=
ref
([])
getProjectList
({
organization_id
:
id
||
''
}).
then
((
res
:
any
)
=>
{
getProjectList
({
organization_id
:
id
,
project_id
:
projectId
}).
then
((
res
:
any
)
=>
{
list
.
value
=
res
.
data
.
departments
list
.
value
=
res
.
data
.
departments
members
.
value
=
res
.
data
.
members
members
.
value
=
res
.
data
.
members
departmentList
.
value
=
res
.
data
.
departments
.
reduce
((
a
:
any
,
b
:
any
)
=>
{
departmentList
.
value
=
res
.
data
.
departments
.
reduce
((
a
:
any
,
b
:
any
)
=>
{
...
...
src/modules/resource/courseware/components/ViewCenter.vue
浏览文件 @
da112287
...
@@ -9,9 +9,6 @@ const props = defineProps({
...
@@ -9,9 +9,6 @@ const props = defineProps({
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"center-video-box"
>
<div
class=
"center-video-box"
>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
<div
class=
"right-statistics"
>
<div
class=
"right-statistics"
>
<div
class=
"stat-item"
>
<div
class=
"stat-item"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
...
@@ -42,15 +39,22 @@ const props = defineProps({
...
@@ -42,15 +39,22 @@ const props = defineProps({
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
</div>
</div>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.center-video-box
{
.center-video-box
{
padding
:
20px
0
;
padding
:
20px
0
;
display
:
flex
;
//
display: flex;
.right-statistics
{
.right-statistics
{
flex
:
1
;
// flex: 1;
display
:
flex
;
max-width
:
1200px
;
justify-content
:
space-between
;
padding-top
:
15px
;
padding-top
:
15px
;
margin
:
0
auto
;
.stat-item
{
.stat-item
{
width
:
210px
;
width
:
210px
;
height
:
85px
;
height
:
85px
;
...
@@ -58,7 +62,8 @@ const props = defineProps({
...
@@ -58,7 +62,8 @@ const props = defineProps({
border-radius
:
6px
;
border-radius
:
6px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
margin
:
0
auto
20px
;
// margin: 0 auto 20px;
margin-bottom
:
20px
;
&
:nth-child
(
even
)
{
&
:nth-child
(
even
)
{
background
:
#bf9d6b
;
background
:
#bf9d6b
;
}
}
...
...
src/modules/resource/courseware/components/ViewTop.vue
浏览文件 @
da112287
...
@@ -6,34 +6,49 @@ const props = defineProps({
...
@@ -6,34 +6,49 @@ const props = defineProps({
require
:
true
require
:
true
}
}
})
})
const
fileType
=
[
'doc'
,
'docx'
,
'xls'
,
'xlsx'
,
'pdf'
,
'ppt'
,
'pptx'
,
'mp3'
,
'mp4'
,
'png'
,
'jpeg'
,
'jpg'
]
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"video-info"
>
<div
class=
"video-info"
>
<div
class=
"video-img"
>
<div
class=
"video-img"
>
<el-icon
class=
"item-info-icon"
>
<img
style=
"width: 80px"
:src=
"`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-$
{props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)"
/>
<el-icon
class=
"item-info-icon"
v-else
>
<Files
/>
<Files
/>
</el-icon>
</el-icon>
<
!--
<img
src=
"https://iph.href.lu/211x146"
>
--
>
<
div
class=
"name"
>
文件类型
</div
>
</div>
</div>
<div
class=
"info-items"
>
<div
class=
"info-items"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon1.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
状态
</div>
<div
class=
"name"
>
状态
</div>
<div
class=
"value active"
>
{{
props
.
data
?.
status_name
}}
</div>
<div
class=
"value active"
>
{{
props
.
data
?.
status_name
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon12.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
创建者
</div>
<div
class=
"name"
>
创建者
</div>
<div
class=
"value"
>
{{
props
.
data
?.
created_operator_name
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
created_operator_name
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon3.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
创建时间
</div>
<div
class=
"name"
>
创建时间
</div>
<div
class=
"value"
>
{{
props
.
data
?.
created_time
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
created_time
}}
</div>
...
@@ -42,21 +57,30 @@ const props = defineProps({
...
@@ -42,21 +57,30 @@ const props = defineProps({
</div>
</div>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon4.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
更新时间
</div>
<div
class=
"name"
>
更新时间
</div>
<div
class=
"value"
>
{{
props
.
data
?.
updated_time
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
updated_time
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon5.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
课件名称
</div>
<div
class=
"name"
>
课件名称
</div>
<div
class=
"value"
>
{{
props
.
data
?.
name
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
name
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class=
"icons"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
负责人
</div>
<div
class=
"name"
>
负责人
</div>
<div
class=
"value"
>
{{
props
.
data
?.
belong_operator_name
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
belong_operator_name
}}
</div>
...
@@ -65,14 +89,20 @@ const props = defineProps({
...
@@ -65,14 +89,20 @@ const props = defineProps({
</div>
</div>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"i-items"
>
<div
class=
"i-items"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon6.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
课件分类
</div>
<div
class=
"name"
>
课件分类
</div>
<div
class=
"value"
>
{{
props
.
data
?.
classification_name
||
'暂无'
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
classification_name
||
'暂无'
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-items"
style=
"align-items: flex-start"
>
<div
class=
"i-items"
style=
"align-items: flex-start"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class=
"icons"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/video-view-icon8.png"
class=
"icons"
/>
<div
class=
"text-box"
>
<div
class=
"text-box"
>
<div
class=
"name"
>
知识点
</div>
<div
class=
"name"
>
知识点
</div>
<div
class=
"value"
>
{{
props
.
data
?.
knowledge_points
||
'暂无'
}}
</div>
<div
class=
"value"
>
{{
props
.
data
?.
knowledge_points
||
'暂无'
}}
</div>
...
@@ -112,11 +142,11 @@ const props = defineProps({
...
@@ -112,11 +142,11 @@ const props = defineProps({
// flex-wrap: wrap;
// flex-wrap: wrap;
flex
:
1
;
flex
:
1
;
padding-left
:
12px
;
padding-left
:
12px
;
.flex-box
{
.flex-box
{
display
:
flex
;
display
:
flex
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
}
}
.i-items
{
.i-items
{
width
:
30%
;
width
:
30%
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
...
src/modules/resource/courseware/views/List.vue
浏览文件 @
da112287
...
@@ -5,11 +5,16 @@ import { Expand } from '@element-plus/icons-vue'
...
@@ -5,11 +5,16 @@ import { Expand } from '@element-plus/icons-vue'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useUserStore
}
from
'@/stores/user'
// 判断当前用户是不是超级管理员
const
user
=
useUserStore
().
roles
const
isAdmin
=
!!
user
.
find
((
item
:
any
)
=>
item
.
name
===
'超级管理员'
)
const
store
=
useMapStore
()
const
store
=
useMapStore
()
// 筛选部门列表
// 筛选部门列表
const
departmentList
:
any
=
useProjectList
().
departmentList
const
departmentList
:
any
=
useProjectList
(
''
,
'79806610719731712'
).
departmentList
// 下拉选择tree 视频分类
// 下拉选择tree 视频分类
let
{
list
:
selectTree
}
=
useGetCategoryList
()
let
{
list
:
selectTree
}
=
useGetCategoryList
()
...
@@ -112,7 +117,7 @@ const typeFilter = () => {
...
@@ -112,7 +117,7 @@ const typeFilter = () => {
:data=
"selectTree"
:data=
"selectTree"
/>
/>
</
template
>
</
template
>
<
template
v-if=
"tabValue == '3'"
#
filter-department=
"{ params }"
>
<
template
v-if=
"tabValue == '3'
&& isAdmin
"
#
filter-department=
"{ params }"
>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
...
...
src/modules/resource/courseware/views/Update.vue
浏览文件 @
da112287
...
@@ -172,7 +172,7 @@ const protocol = ref(false)
...
@@ -172,7 +172,7 @@ const protocol = ref(false)
</el-form-item>
</el-form-item>
<el-form-item
label=
" 知识点:"
>
<el-form-item
label=
" 知识点:"
>
<el-input
<el-input
placeholder=
"请输入该
视频
相关知识点,多个知识点请使用“,”分隔"
placeholder=
"请输入该
课件
相关知识点,多个知识点请使用“,”分隔"
maxlength=
"100"
maxlength=
"100"
v-model=
"form.knowledge_points"
v-model=
"form.knowledge_points"
:rows=
"2"
:rows=
"2"
...
@@ -306,9 +306,6 @@ const protocol = ref(false)
...
@@ -306,9 +306,6 @@ const protocol = ref(false)
padding-left
:
90px
;
padding-left
:
90px
;
padding-top
:
20px
;
padding-top
:
20px
;
color
:
#666666
;
color
:
#666666
;
span
{
color
:
#aa1941
;
}
}
}
.btn-box
{
.btn-box
{
display
:
flex
;
display
:
flex
;
...
...
src/modules/resource/lessonplan/components/ViewCenter.vue
浏览文件 @
da112287
...
@@ -9,9 +9,6 @@ const props = defineProps({
...
@@ -9,9 +9,6 @@ const props = defineProps({
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"center-video-box"
>
<div
class=
"center-video-box"
>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
<div
class=
"right-statistics"
>
<div
class=
"right-statistics"
>
<div
class=
"stat-item"
>
<div
class=
"stat-item"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
...
@@ -42,14 +39,21 @@ const props = defineProps({
...
@@ -42,14 +39,21 @@ const props = defineProps({
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
</div>
</div>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.center-video-box
{
.center-video-box
{
padding
:
20px
0
;
padding
:
20px
0
;
display
:
flex
;
//
display: flex;
.right-statistics
{
.right-statistics
{
flex
:
1
;
// flex: 1;
display
:
flex
;
justify-content
:
space-between
;
max-width
:
1200px
;
margin
:
0
auto
;
padding-top
:
15px
;
padding-top
:
15px
;
.stat-item
{
.stat-item
{
width
:
210px
;
width
:
210px
;
...
@@ -58,7 +62,8 @@ const props = defineProps({
...
@@ -58,7 +62,8 @@ const props = defineProps({
border-radius
:
6px
;
border-radius
:
6px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
margin
:
0
auto
20px
;
// margin: 0 auto 20px;
margin-bottom
:
20px
;
&
:nth-child
(
even
)
{
&
:nth-child
(
even
)
{
background
:
#bf9d6b
;
background
:
#bf9d6b
;
}
}
...
...
src/modules/resource/lessonplan/components/ViewTop.vue
浏览文件 @
da112287
...
@@ -6,15 +6,22 @@ const props = defineProps({
...
@@ -6,15 +6,22 @@ const props = defineProps({
require
:
true
require
:
true
}
}
})
})
const
fileType
=
[
'doc'
,
'docx'
,
'xls'
,
'xlsx'
,
'pdf'
,
'ppt'
,
'pptx'
,
'mp3'
,
'mp4'
,
'png'
,
'jpeg'
,
'jpg'
]
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"video-info"
>
<div
class=
"video-info"
>
<div
class=
"video-img"
>
<div
class=
"video-img"
>
<el-icon
class=
"item-info-icon"
>
<img
style=
"width: 80px"
:src=
"`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-$
{props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)"
/>
<el-icon
class=
"item-info-icon"
v-else
>
<Files
/>
<Files
/>
</el-icon>
</el-icon>
<
!--
<img
src=
"https://iph.href.lu/211x146"
>
--
>
<
div
class=
"name"
>
文件类型
</div
>
</div>
</div>
<div
class=
"info-items"
>
<div
class=
"info-items"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
...
...
src/modules/resource/lessonplan/views/List.vue
浏览文件 @
da112287
...
@@ -5,6 +5,11 @@ import { Expand } from '@element-plus/icons-vue'
...
@@ -5,6 +5,11 @@ import { Expand } from '@element-plus/icons-vue'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useUserStore
}
from
'@/stores/user'
// 判断当前用户是不是超级管理员
const
user
=
useUserStore
().
roles
const
isAdmin
=
!!
user
.
find
((
item
:
any
)
=>
item
.
name
===
'超级管理员'
)
const
store
=
useMapStore
()
const
store
=
useMapStore
()
...
@@ -17,7 +22,7 @@ const changeCard = () => {
...
@@ -17,7 +22,7 @@ const changeCard = () => {
}
}
// 筛选部门列表
// 筛选部门列表
const
departmentList
:
any
=
useProjectList
().
departmentList
const
departmentList
:
any
=
useProjectList
(
''
,
'79806610719731712'
).
departmentList
// 下拉选择tree 视频分类
// 下拉选择tree 视频分类
let
{
list
:
selectTree
}
=
useGetCategoryList
()
let
{
list
:
selectTree
}
=
useGetCategoryList
()
...
@@ -112,7 +117,7 @@ const typeFilter = () => {
...
@@ -112,7 +117,7 @@ const typeFilter = () => {
:data=
"selectTree"
:data=
"selectTree"
/>
/>
</
template
>
</
template
>
<
template
v-if=
"tabValue == '3'"
#
filter-department=
"{ params }"
>
<
template
v-if=
"tabValue == '3'
&& isAdmin
"
#
filter-department=
"{ params }"
>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
...
...
src/modules/resource/lessonplan/views/Update.vue
浏览文件 @
da112287
...
@@ -153,7 +153,7 @@ const protocol = ref(false)
...
@@ -153,7 +153,7 @@ const protocol = ref(false)
<div
class=
"upload-btn"
>
本地文件
</div>
<div
class=
"upload-btn"
>
本地文件
</div>
</div>
</div>
</div>
</div>
<div
class=
"tips"
>
课件
支持格式包含:doc docx pdf ppt pptx,大小不超过50M
</div>
<div
class=
"tips"
>
教案
支持格式包含:doc docx pdf ppt pptx,大小不超过50M
</div>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"教案名称:"
prop=
"name"
>
<el-form-item
label=
"教案名称:"
prop=
"name"
>
...
@@ -170,7 +170,7 @@ const protocol = ref(false)
...
@@ -170,7 +170,7 @@ const protocol = ref(false)
</el-form-item>
</el-form-item>
<el-form-item
label=
" 知识点:"
>
<el-form-item
label=
" 知识点:"
>
<el-input
<el-input
placeholder=
"请输入该
视频
相关知识点,多个知识点请使用“,”分隔"
placeholder=
"请输入该
教案
相关知识点,多个知识点请使用“,”分隔"
maxlength=
"100"
maxlength=
"100"
v-model=
"form.knowledge_points"
v-model=
"form.knowledge_points"
:rows=
"2"
:rows=
"2"
...
@@ -303,9 +303,6 @@ const protocol = ref(false)
...
@@ -303,9 +303,6 @@ const protocol = ref(false)
padding-left
:
90px
;
padding-left
:
90px
;
padding-top
:
20px
;
padding-top
:
20px
;
color
:
#666666
;
color
:
#666666
;
span
{
color
:
#aa1941
;
}
}
}
.btn-box
{
.btn-box
{
display
:
flex
;
display
:
flex
;
...
...
src/modules/resource/other/components/ViewCenter.vue
浏览文件 @
da112287
...
@@ -9,9 +9,6 @@ const props = defineProps({
...
@@ -9,9 +9,6 @@ const props = defineProps({
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"center-video-box"
>
<div
class=
"center-video-box"
>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
<div
class=
"right-statistics"
>
<div
class=
"right-statistics"
>
<div
class=
"stat-item"
>
<div
class=
"stat-item"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
/>
...
@@ -42,14 +39,21 @@ const props = defineProps({
...
@@ -42,14 +39,21 @@ const props = defineProps({
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"file-box"
>
<PreviewFiles
:url=
"props.data?.url"
></PreviewFiles>
</div>
</div>
</div>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.center-video-box
{
.center-video-box
{
padding
:
20px
0
;
padding
:
20px
0
;
display
:
flex
;
//
display: flex;
.right-statistics
{
.right-statistics
{
flex
:
1
;
// flex: 1;
display
:
flex
;
justify-content
:
space-between
;
max-width
:
1200px
;
margin
:
0
auto
;
padding-top
:
15px
;
padding-top
:
15px
;
.stat-item
{
.stat-item
{
width
:
210px
;
width
:
210px
;
...
@@ -58,7 +62,8 @@ const props = defineProps({
...
@@ -58,7 +62,8 @@ const props = defineProps({
border-radius
:
6px
;
border-radius
:
6px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
margin
:
0
auto
20px
;
// margin: 0 auto 20px;
margin-bottom
:
20px
;
&
:nth-child
(
even
)
{
&
:nth-child
(
even
)
{
background
:
#bf9d6b
;
background
:
#bf9d6b
;
}
}
...
...
src/modules/resource/other/components/ViewTop.vue
浏览文件 @
da112287
...
@@ -6,15 +6,22 @@ const props = defineProps({
...
@@ -6,15 +6,22 @@ const props = defineProps({
require
:
true
require
:
true
}
}
})
})
const
fileType
=
[
'doc'
,
'docx'
,
'xls'
,
'xlsx'
,
'pdf'
,
'ppt'
,
'pptx'
,
'mp3'
,
'mp4'
,
'png'
,
'jpeg'
,
'jpg'
]
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"video-info"
>
<div
class=
"video-info"
>
<div
class=
"video-img"
>
<div
class=
"video-img"
>
<el-icon
class=
"item-info-icon"
>
<img
style=
"width: 80px"
:src=
"`https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/detail-$
{props.data?.type}.png`"
v-if="fileType.includes(props.data?.type)"
/>
<el-icon
class=
"item-info-icon"
v-else
>
<Files
/>
<Files
/>
</el-icon>
</el-icon>
<
!--
<img
src=
"https://iph.href.lu/211x146"
>
--
>
<
div
class=
"name"
>
文件类型
</div
>
</div>
</div>
<div
class=
"info-items"
>
<div
class=
"info-items"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
...
...
src/modules/resource/other/views/List.vue
浏览文件 @
da112287
...
@@ -6,6 +6,11 @@ import { useMapStore } from '@/stores/map'
...
@@ -6,6 +6,11 @@ import { useMapStore } from '@/stores/map'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
// 下拉选择tree 视频分类
// 下拉选择tree 视频分类
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useUserStore
}
from
'@/stores/user'
// 判断当前用户是不是超级管理员
const
user
=
useUserStore
().
roles
const
isAdmin
=
!!
user
.
find
((
item
:
any
)
=>
item
.
name
===
'超级管理员'
)
const
store
=
useMapStore
()
const
store
=
useMapStore
()
...
@@ -24,7 +29,7 @@ const tabChange = () => {
...
@@ -24,7 +29,7 @@ const tabChange = () => {
}
}
// 筛选部门列表
// 筛选部门列表
const
departmentList
:
any
=
useProjectList
().
departmentList
const
departmentList
:
any
=
useProjectList
(
''
,
'79806610719731712'
).
departmentList
// 下拉选择tree 视频分类
// 下拉选择tree 视频分类
let
{
list
:
selectTree
}
=
useGetCategoryList
()
let
{
list
:
selectTree
}
=
useGetCategoryList
()
...
@@ -113,7 +118,7 @@ const typeFilter = () => {
...
@@ -113,7 +118,7 @@ const typeFilter = () => {
:data=
"selectTree"
:data=
"selectTree"
/>
/>
</
template
>
</
template
>
<
template
v-if=
"tabValue == '3'"
#
filter-department=
"{ params }"
>
<
template
v-if=
"tabValue == '3'
&& isAdmin
"
#
filter-department=
"{ params }"
>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
...
...
src/modules/resource/other/views/Update.vue
浏览文件 @
da112287
...
@@ -174,7 +174,7 @@ const protocol = ref(false)
...
@@ -174,7 +174,7 @@ const protocol = ref(false)
</el-form-item>
</el-form-item>
<el-form-item
label=
" 知识点:"
>
<el-form-item
label=
" 知识点:"
>
<el-input
<el-input
placeholder=
"请输入该
视频
相关知识点,多个知识点请使用“,”分隔"
placeholder=
"请输入该
资料
相关知识点,多个知识点请使用“,”分隔"
maxlength=
"100"
maxlength=
"100"
v-model=
"form.knowledge_points"
v-model=
"form.knowledge_points"
:rows=
"2"
:rows=
"2"
...
@@ -307,9 +307,6 @@ const protocol = ref(false)
...
@@ -307,9 +307,6 @@ const protocol = ref(false)
padding-left
:
90px
;
padding-left
:
90px
;
padding-top
:
20px
;
padding-top
:
20px
;
color
:
#666666
;
color
:
#666666
;
span
{
color
:
#aa1941
;
}
}
}
.btn-box
{
.btn-box
{
display
:
flex
;
display
:
flex
;
...
...
src/modules/resource/video/components/ViewCenter.vue
浏览文件 @
da112287
...
@@ -7,9 +7,6 @@ const videoOptions = $computed(() => {
...
@@ -7,9 +7,6 @@ const videoOptions = $computed(() => {
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"center-video-box"
>
<div
class=
"center-video-box"
>
<div
style=
"width:812px; height:433px;padding-bottom: 20px;"
>
<AppVideoPlayer
:options=
"videoOptions"
></AppVideoPlayer>
</div>
<div
class=
"right-statistics"
>
<div
class=
"right-statistics"
>
<div
class=
"stat-item"
>
<div
class=
"stat-item"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
>
<img
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/view-vicon1.png"
>
...
@@ -40,15 +37,22 @@ const videoOptions = $computed(() => {
...
@@ -40,15 +37,22 @@ const videoOptions = $computed(() => {
</div>
</div>
</div>
</div>
</div>
</div>
<div
style=
"max-width:1200px; padding-bottom: 20px; margin:0 auto;"
>
<AppVideoPlayer
:options=
"videoOptions"
></AppVideoPlayer>
</div>
</div>
</div>
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.center-video-box
{
.center-video-box
{
padding
:
20px
0
;
padding
:
20px
0
;
display
:
flex
;
//
display: flex;
.right-statistics
{
.right-statistics
{
flex
:
1
;
max-width
:
1200px
;
margin
:
0
auto
;
// flex: 1;
display
:
flex
;
padding-top
:
15px
;
padding-top
:
15px
;
justify-content
:
space-between
;
.stat-item
{
.stat-item
{
width
:
210px
;
width
:
210px
;
height
:
85px
;
height
:
85px
;
...
@@ -56,7 +60,8 @@ const videoOptions = $computed(() => {
...
@@ -56,7 +60,8 @@ const videoOptions = $computed(() => {
border-radius
:
6px
;
border-radius
:
6px
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
margin
:
0
auto
20px
;
// margin: 0 auto 20px;
margin-bottom
:
20px
;
&
:nth-child
(
even
)
{
&
:nth-child
(
even
)
{
background
:
#BF9D6B
;
background
:
#BF9D6B
;
}
}
...
...
src/modules/resource/video/views/List.vue
浏览文件 @
da112287
...
@@ -5,11 +5,16 @@ import { Expand, PictureFilled } from '@element-plus/icons-vue'
...
@@ -5,11 +5,16 @@ import { Expand, PictureFilled } from '@element-plus/icons-vue'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useGetCategoryList
}
from
'@/composables/useGetCategoryList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useProjectList
}
from
'@/composables/useGetProjectList'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useUserStore
}
from
'@/stores/user'
// 判断当前用户是不是超级管理员
const
user
=
useUserStore
().
roles
const
isAdmin
=
!!
user
.
find
((
item
:
any
)
=>
item
.
name
===
'超级管理员'
)
const
store
=
useMapStore
()
const
store
=
useMapStore
()
// 筛选部门列表
// 筛选部门列表
const
departmentList
:
any
=
useProjectList
().
departmentList
const
departmentList
:
any
=
useProjectList
(
''
,
'79806610719731712'
).
departmentList
// 筛选下拉选择tree 视频分类
// 筛选下拉选择tree 视频分类
let
{
list
:
selectTree
}
=
useGetCategoryList
()
let
{
list
:
selectTree
}
=
useGetCategoryList
()
...
@@ -129,7 +134,7 @@ const changeCard = () => {
...
@@ -129,7 +134,7 @@ const changeCard = () => {
:data=
"selectTree"
:data=
"selectTree"
/>
/>
</
template
>
</
template
>
<
template
v-if=
"tabValue == '3'"
#
filter-department=
"{ params }"
>
<
template
v-if=
"tabValue == '3'
&& isAdmin
"
#
filter-department=
"{ params }"
>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<div
class=
"name"
style=
"font-size: 14px; color: #606266; padding-right: 12px"
>
部门
</div>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-select
@
change=
"typeFilter"
clearable
v-model=
"params.authorized"
>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
<el-option
v-for=
"item in departmentList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
...
...
src/modules/resource/video/views/Update.vue
浏览文件 @
da112287
...
@@ -194,7 +194,7 @@ const watchSwiper = (index: number) => {
...
@@ -194,7 +194,7 @@ const watchSwiper = (index: number) => {
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class=
"icon"
class=
"icon"
/>
/>
<div
class=
"text"
>
该图片作为
课程的宣传图,用于课程主要的
显示
</div>
<div
class=
"text"
>
该图片作为
视频的封面图,用于视频封面
显示
</div>
</div>
</div>
<div
class=
"item"
>
<div
class=
"item"
>
<img
<img
...
@@ -215,7 +215,7 @@ const watchSwiper = (index: number) => {
...
@@ -215,7 +215,7 @@ const watchSwiper = (index: number) => {
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
src=
"https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/upload-video-icon.png"
class=
"icon"
class=
"icon"
/>
/>
<div
class=
"text"
>
想
可以自己上传图片,也可以从下面这些图片中选择使用
</div>
<div
class=
"text"
>
可以自己上传图片,也可以从下面这些图片中选择使用
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -362,9 +362,6 @@ const watchSwiper = (index: number) => {
...
@@ -362,9 +362,6 @@ const watchSwiper = (index: number) => {
padding-left
:
90px
;
padding-left
:
90px
;
padding-top
:
20px
;
padding-top
:
20px
;
color
:
#666666
;
color
:
#666666
;
span
{
color
:
#aa1941
;
}
}
}
.btn-box
{
.btn-box
{
display
:
flex
;
display
:
flex
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论