Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
learn-online-pc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
learn-online-pc
Commits
b9a48a84
提交
b9a48a84
authored
11月 04, 2020
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
差异文件
merge...
上级
17695517
894a7ebf
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
116 行增加
和
118 行删除
+116
-118
CourseAction.js
src/action/CourseAction.js
+17
-2
base_api.js
src/api/base_api.js
+1
-1
Before.js
src/components/beforeEnter/Before.js
+1
-1
editor.vue
src/components/editor.vue
+8
-18
chapter.vue
src/modules/viewer/components/aside/chapter.vue
+1
-1
editor.vue
src/modules/viewer/components/common/editor.vue
+9
-18
upload.vue
src/modules/viewer/components/common/upload.vue
+31
-33
chapterLive.vue
src/modules/viewer/components/live/chapterLive.vue
+1
-1
chapterExam.vue
src/modules/viewer/components/work/chapterExam.vue
+2
-2
courseExam.vue
src/modules/viewer/components/work/courseExam.vue
+0
-0
examItem.vue
src/modules/viewer/components/work/examItem.vue
+27
-25
index.vue
src/modules/viewer/components/work/index.vue
+1
-8
index.vue
src/modules/viewer/index.vue
+1
-0
course.vue
src/pages/learn/course.vue
+7
-3
courseDetail.vue
src/pages/learn/courseDetail.vue
+1
-1
list.vue
src/pages/mobile/list.vue
+6
-2
message.vue
src/pages/other/message.vue
+2
-2
没有找到文件。
src/action/CourseAction.js
浏览文件 @
b9a48a84
...
...
@@ -211,15 +211,30 @@ export default class CourseAction extends BaseACTION {
// type: 102
// })
if
(
cur
.
course_examination
)
{
let
courseExamChildren
=
[]
if
(
data
.
exist_examination
.
length
>
1
)
{
courseExamChildren
=
data
.
exist_examination
.
map
((
item
,
index
)
=>
{
const
map
=
[
'一'
,
'二'
,
'三'
]
return
{
name
:
`第
${
map
[
index
]}
次考试`
,
id
:
'course_exam'
,
offset
:
index
,
sid
:
sid
,
cid
:
cid
,
examId
:
cur
.
course_examination
,
type
:
101
}
})
}
json
.
tabs1ChapterList
.
course
.
push
({
title
:
'课程考试'
,
isUp
:
true
,
chapters
:
[]
,
chapters
:
courseExamChildren
,
id
:
'course_exam'
,
sid
:
sid
,
cid
:
cid
,
examId
:
cur
.
course_examination
,
type
:
10
2
type
:
10
1
})
}
/* 课程考核 考核标准文案读取 */
...
...
src/api/base_api.js
浏览文件 @
b9a48a84
...
...
@@ -76,7 +76,7 @@ export default class API {
// _vIn.$router.push({
// path: '/login/index?rd=' + encodeURIComponent(href.replace(/.*?\/\/.*?\//gi, '/'))
// })
window
.
location
.
href
=
`
${
webConf
.
others
.
loginUrl
}
'
?rd=
${
encodeURIComponent
(
window
.
location
.
href
)}
`
window
.
location
.
href
=
`
${
webConf
.
others
.
loginUrl
}
?rd=
${
encodeURIComponent
(
window
.
location
.
href
)}
`
}
}
...
...
src/components/beforeEnter/Before.js
浏览文件 @
b9a48a84
...
...
@@ -6,7 +6,7 @@ export default class Before {
this
.
opt
=
opt
||
{}
// 免登录列表
this
.
whiteList
=
[
'login-normal'
,
'login-code'
,
'login-forget'
,
'studentHelp'
,
'teacherHelp'
]
this
.
isMobile
=
/
android|iphone|ipad|ipod/i
.
test
(
UA
)
this
.
isMobile
=
/
iphone/i
.
test
(
UA
)
||
(
/android/i
.
test
(
UA
)
&&
/mobile/i
.
test
(
UA
)
)
}
async
update
(
to
,
from
,
next
)
{
...
...
src/components/editor.vue
浏览文件 @
b9a48a84
...
...
@@ -10,7 +10,7 @@ export default {
name
:
'VEditor'
,
props
:
{
value
:
{
type
:
String
},
disabled
:
{
type
:
Boolean
,
default
:
null
}
disabled
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
...
...
@@ -49,16 +49,7 @@ export default {
'/'
,
{
name
:
'basicstyles'
,
items
:
[
'Bold'
,
'Italic'
,
'Underline'
,
'Strike'
,
'Subscript'
,
'Superscript'
,
'-'
,
'RemoveFormat'
]
items
:
[
'Bold'
,
'Italic'
,
'Underline'
,
'Strike'
,
'Subscript'
,
'Superscript'
,
'-'
,
'RemoveFormat'
]
},
{
name
:
'paragraph'
,
...
...
@@ -86,14 +77,12 @@ export default {
]
}
if
(
this
.
disabled
!==
null
)
{
config
.
readOnly
=
this
.
disabled
}
// if (this.disabled !== null) {
// console.log(this.disabled)
// config.readOnly = this.disabled
// }
const
editor
=
(
this
.
ckEditor
=
CKEDITOR
.
replace
(
this
.
textareaElementId
,
config
))
const
editor
=
(
this
.
ckEditor
=
CKEDITOR
.
replace
(
this
.
textareaElementId
,
config
))
editor
.
on
(
'instanceReady'
,
()
=>
{
const
data
=
this
.
value
editor
.
fire
(
'lockSnapshot'
)
...
...
@@ -118,6 +107,7 @@ export default {
editor
.
fire
(
'unlockSnapshot'
)
}
})
editor
.
setReadOnly
(
this
.
disabled
)
})
},
bindEvent
()
{
...
...
src/modules/viewer/components/aside/chapter.vue
浏览文件 @
b9a48a84
...
...
@@ -41,7 +41,7 @@ export default {
},
filters
:
{
showName
(
name
,
data
)
{
if
(
data
.
type
===
5
&&
data
.
live
)
{
if
(
[
5
,
8
].
includes
(
data
.
type
)
&&
data
.
live
)
{
return
`
${
name
}
(
${
data
.
live
.
start_time
}
)`
}
return
name
...
...
src/modules/viewer/components/common/editor.vue
浏览文件 @
b9a48a84
...
...
@@ -10,7 +10,7 @@ export default {
name
:
'VEditor'
,
props
:
{
value
:
{
type
:
String
},
disabled
:
{
type
:
Boolean
,
default
:
null
}
disabled
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
...
...
@@ -49,16 +49,7 @@ export default {
'/'
,
{
name
:
'basicstyles'
,
items
:
[
'Bold'
,
'Italic'
,
'Underline'
,
'Strike'
,
'Subscript'
,
'Superscript'
,
'-'
,
'RemoveFormat'
]
items
:
[
'Bold'
,
'Italic'
,
'Underline'
,
'Strike'
,
'Subscript'
,
'Superscript'
,
'-'
,
'RemoveFormat'
]
},
{
name
:
'paragraph'
,
...
...
@@ -85,14 +76,13 @@ export default {
{
name
:
'insert'
,
items
:
[
'Image'
,
'Table'
,
'HorizontalRule'
]
}
]
}
if
(
this
.
disabled
!==
null
)
{
config
.
readOnly
=
this
.
disabled
}
const
editor
=
(
this
.
ckEditor
=
CKEDITOR
.
replace
(
this
.
textareaElementId
,
config
))
// if (this.disabled !== null) {
// console.log(this.disabled)
// config.readOnly = this.disabled
// }
const
editor
=
(
this
.
ckEditor
=
CKEDITOR
.
replace
(
this
.
textareaElementId
,
config
))
editor
.
on
(
'instanceReady'
,
()
=>
{
const
data
=
this
.
value
editor
.
fire
(
'lockSnapshot'
)
...
...
@@ -117,6 +107,7 @@ export default {
editor
.
fire
(
'unlockSnapshot'
)
}
})
editor
.
setReadOnly
(
this
.
disabled
)
})
},
bindEvent
()
{
...
...
src/modules/viewer/components/common/upload.vue
浏览文件 @
b9a48a84
...
...
@@ -10,23 +10,18 @@
</
template
>
</el-upload>
<div
class=
"file-list"
v-if=
"fileList.length"
>
<div
class=
"file-list-item"
v-for=
"(
fileUrl
, index) in fileList"
:key=
"index"
>
<a
:href=
"
fileUrl
"
target=
"_blank"
>
<div
class=
"file-list-item"
v-for=
"(
item
, index) in fileList"
:key=
"index"
>
<a
:href=
"
item.url"
:download=
"item.name
"
target=
"_blank"
>
<i
class=
"el-icon-document"
></i>
{{
fileUrl | fileN
ame }}
{{
item.n
ame }}
</a>
<div>
<a
href=
"javascript:;"
@
click=
"handleRemove(index)"
style=
"margin-right:10px;"
v-if=
"!disabled"
>
<a
href=
"javascript:;"
@
click=
"handleRemove(index)"
style=
"margin-right: 10px"
v-if=
"!disabled"
>
<el-tooltip
effect=
"dark"
content=
"删除"
>
<i
class=
"el-icon-delete"
></i>
</el-tooltip>
</a>
<a
:href=
"
fileUrl"
:download=
"fileUrl | fileN
ame"
target=
"_blank"
>
<a
:href=
"
item.url"
:download=
"item.n
ame"
target=
"_blank"
>
<el-tooltip
effect=
"dark"
content=
"下载"
>
<i
class=
"el-icon-download"
></i>
</el-tooltip>
...
...
@@ -55,36 +50,39 @@ export default {
value
:
{
immediate
:
true
,
handler
(
value
)
{
if
(
value
)
{
if
(
Array
.
isArray
(
value
))
{
this
.
fileList
=
value
.
map
(
item
=>
{
return
item
.
url
||
item
})
}
else
{
this
.
fileList
=
[
value
]
}
if
(
!
value
)
{
return
}
let
fileList
=
[]
if
(
Array
.
isArray
(
value
))
{
fileList
=
value
.
map
(
item
=>
{
return
{
name
:
item
.
name
||
item
,
url
:
item
.
url
||
item
}
})
}
else
{
fileList
.
push
({
name
:
'附件下载'
,
url
:
value
})
}
this
.
fileList
=
fileList
}
}
},
filters
:
{
fileName
(
value
)
{
return
value
?
value
.
split
(
'/'
).
pop
()
:
''
}
},
methods
:
{
httpRequest
(
xhr
)
{
api
.
uploadFile
({
file
:
xhr
.
file
}).
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
Array
.
isArray
(
this
.
value
))
{
this
.
fileList
.
push
(
response
.
url
)
this
.
$emit
(
'input'
,
this
.
fileList
)
}
else
{
this
.
fileList
=
[
response
.
url
]
this
.
$emit
(
'input'
,
response
.
url
)
api
.
uploadFile
({
file
:
xhr
.
file
})
.
then
(
response
=>
{
if
(
response
.
success
)
{
if
(
Array
.
isArray
(
this
.
value
))
{
this
.
fileList
.
push
({
name
:
xhr
.
file
.
name
,
url
:
response
.
url
})
this
.
$emit
(
'input'
,
this
.
fileList
)
}
else
{
this
.
fileList
=
[
response
.
url
]
this
.
$emit
(
'input'
,
response
.
url
)
}
}
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
handleRemove
(
index
)
{
this
.
fileList
.
splice
(
index
,
1
)
...
...
src/modules/viewer/components/live/chapterLive.vue
浏览文件 @
b9a48a84
...
...
@@ -68,7 +68,7 @@ export default {
const
live
=
this
.
live
if
(
this
.
isLiveEnd
&&
this
.
hasRecord
)
{
// 查看回放
return
live
.
record_url
return
live
.
record_url
.
replace
(
/^http:|^https:/
,
''
)
}
else
{
// 直播
live
.
user_name
=
live
.
user_name
||
this
.
nickName
...
...
src/modules/viewer/components/work/chapterExam.vue
浏览文件 @
b9a48a84
...
...
@@ -224,6 +224,7 @@ export default {
// 提交参数
const
params
=
{
answers
:
JSON
.
stringify
(
answers
),
type
:
1
}
// 请求接口
this
.
submitLoading
=
true
this
.
handleSubmitRequest
(
params
)
},
// 自动提交
...
...
@@ -236,7 +237,7 @@ export default {
const
params
=
{
answers
:
JSON
.
stringify
(
answers
),
type
:
0
}
// 请求接口
this
.
handleSubmitRequest
(
params
)
},
10
000
)
},
3
000
)
},
// 处理请求接口答案数据
handleSubmitData
()
{
...
...
@@ -266,7 +267,6 @@ export default {
},
// 请求提交接口
handleSubmitRequest
(
params
)
{
this
.
submitLoading
=
true
params
.
paper_type
=
0
api
.
submitCourseExam
(
this
.
sid
,
this
.
cid
,
this
.
pid
,
params
)
...
...
src/modules/viewer/components/work/courseExam.vue
浏览文件 @
b9a48a84
差异被折叠。
点击展开。
src/modules/viewer/components/work/examItem.vue
浏览文件 @
b9a48a84
<
template
>
<div
class=
"q-item"
>
<div
class=
"q-item-hd"
>
<div
class=
"q-item-num"
>
{{
index
+
1
}}
.
</div>
<div
class=
"q-item-num"
>
{{
index
+
1
}}
.
</div>
<div
class=
"q-item-title"
v-html=
"data.content"
></div>
<div
class=
"q-item-aside"
>
<template
v-if=
"typeText"
>
(
{{
typeText
}}
)
</
template
>
<
template
v-if=
"data.hasOwnProperty('score')"
>
(
{{
data
.
score
}}
分)
</
template
>
<template
v-if=
"typeText"
>
(
{{
typeText
}}
)
</
template
>
<
template
v-if=
"data.hasOwnProperty('score')"
>
(
{{
data
.
score
}}
分)
</
template
>
</div>
</div>
<div
class=
"q-item-bd"
>
<!-- 单选 -->
<el-radio-group
v-model=
"currentValue.user_answer"
v-if=
"type === 1"
>
<div
class=
"q-option-item"
v-for=
"item in currentOptions"
:key=
"item.id"
>
<el-radio
:class=
"genClass(item)"
:label=
"item.id"
>
{{item.abc_option}}
</el-radio>
<el-radio
:class=
"genClass(item)"
:label=
"item.id"
>
<div
class=
"q-option-item__answer"
v-html=
"item.abc_option"
></div>
</el-radio>
</div>
</el-radio-group>
<!-- 多选 -->
<el-checkbox-group
v-model=
"currentValue.user_answer"
v-if=
"type === 2"
>
<div
class=
"q-option-item"
v-for=
"item in currentOptions"
:key=
"item.id"
>
<el-checkbox
:class=
"genClass(item)"
:label=
"item.id"
>
{{item.abc_option}}
</el-checkbox>
<el-checkbox
:class=
"genClass(item)"
:label=
"item.id"
>
<div
class=
"q-option-item__answer"
v-html=
"item.abc_option"
></div>
</el-checkbox>
</div>
</el-checkbox-group>
<!-- 简答题 -->
...
...
@@ -27,39 +31,34 @@
<v-upload
:disabled=
"disabled"
v-model=
"currentValue.attachments"
>
请上传对应的文件附件:
</v-upload>
</
template
>
</div>
<div
class=
"q-item-ft"
v-if=
"disabled"
>
<div
class=
"q-item-ft"
v-if=
"disabled
&& showResult
"
>
<
template
v-if=
"type === 3"
>
<p
v-if=
"data.check_comment"
>
<span>
评语:
</span>
<span>
{{
data
.
check_comment
}}
</span>
<span>
{{
data
.
check_comment
}}
</span>
</p>
</
template
>
<
template
v-else
>
<div
class=
"result"
>
<p>
<span>
学生答案:
</span>
<span
:class=
"isCorrect ? 'is-success' : 'is-error'"
>
{{
submitAnswerText
}}
</span>
<span
:class=
"isCorrect ? 'is-success' : 'is-error'"
>
{{
submitAnswerText
}}
</span>
</p>
<p>
<span>
正确答案:
</span>
<span>
{{
correctAnswerText
}}
</span>
<span>
{{
correctAnswerText
}}
</span>
</p>
</div>
</
template
>
<p
v-if=
"data.hasOwnProperty('get_score')"
>
<span>
评分:
</span>
<span>
{{
data.get_score
}}分
</span>
<span>
{{
data.get_score
}}分
</span>
</p>
<div
class=
"analyze"
v-if=
"data.analysis"
>
<span>
解析:
</span>
<div
class=
"analyze-main"
>
<span
style=
"color:blue;cursor:pointer;"
@
click=
"showAnalyze = !showAnalyze"
>
查看解析
</span>
<div
v-html=
"data.analysis"
v-if=
"data.analysis"
v-show=
"showAnalyze"
class=
"analyze-content"
></div>
<span
style=
"color: blue; cursor: pointer"
@
click=
"showAnalyze = !showAnalyze"
>
查看解析
</span>
<div
v-html=
"data.analysis"
v-if=
"data.analysis"
v-show=
"showAnalyze"
class=
"analyze-content"
></div>
</div>
</div>
</div>
...
...
@@ -94,7 +93,8 @@ export default {
}
},
// 是否禁用,提交过的是禁用状态
disabled
:
{
type
:
Boolean
,
default
:
false
}
disabled
:
{
type
:
Boolean
,
default
:
false
},
showResult
:
{
type
:
Boolean
,
default
:
true
}
},
data
()
{
return
{
...
...
@@ -135,16 +135,12 @@ export default {
item
.
abc_option
=
`
${
this
.
A_Z
[
index
]}
.
${
item
.
option
}
`
// 提交时的选中状态
const
value
=
this
.
value
.
user_answer
||
''
item
.
selected
=
Array
.
isArray
(
value
)
?
value
.
includes
(
item
.
id
)
:
value
===
item
.
id
item
.
selected
=
Array
.
isArray
(
value
)
?
value
.
includes
(
item
.
id
)
:
value
===
item
.
id
// 处理正确的选中状态
const
hasChecked
=
Object
.
prototype
.
hasOwnProperty
.
call
(
item
,
'checked'
)
const
rightAnswer
=
this
.
data
.
right_answer
||
''
if
(
!
hasChecked
&&
rightAnswer
)
{
item
.
checked
=
Array
.
isArray
(
rightAnswer
)
?
rightAnswer
.
includes
(
item
.
id
)
:
rightAnswer
===
item
.
id
item
.
checked
=
Array
.
isArray
(
rightAnswer
)
?
rightAnswer
.
includes
(
item
.
id
)
:
rightAnswer
===
item
.
id
}
return
item
})
...
...
@@ -179,7 +175,7 @@ export default {
methods
:
{
// 生成class
genClass
(
item
)
{
if
(
!
this
.
disabled
)
{
if
(
!
this
.
disabled
||
!
this
.
showResult
)
{
return
null
}
return
{
...
...
@@ -232,6 +228,12 @@ export default {
padding-left
:
20px
;
margin-bottom
:
14px
;
}
.q-option-item__answer
{
display
:
inline
;
::v-deep
*
{
display
:
inline
;
}
}
.is-success
{
color
:
#090
;
}
...
...
src/modules/viewer/components/work/index.vue
浏览文件 @
b9a48a84
<
template
>
<component
:is=
"currentCompoent"
:chapter=
"chapter"
:data=
"data"
v-bind=
"$attrs"
v-on=
"$listeners"
v-if=
"chapter"
/>
<component
:is=
"currentCompoent"
:chapter=
"chapter"
:data=
"data"
v-bind=
"$attrs"
v-on=
"$listeners"
v-if=
"chapter"
/>
</
template
>
<
script
>
...
...
src/modules/viewer/index.vue
浏览文件 @
b9a48a84
...
...
@@ -35,6 +35,7 @@
:key=
"pid"
@
pptupdate=
"handlePPTupdate"
@
change-ppt=
"handleChangePPT(...arguments, false)"
@
update=
"getCourse"
/>
</div>
</div>
...
...
src/pages/learn/course.vue
浏览文件 @
b9a48a84
...
...
@@ -30,7 +30,7 @@
<!-- <el-button class="rbtn" type="primary" size="medium" icon="el-icon-self-cc-book icon" @click="goCourseAll">{{ $t('pages.learn.course.changeCourse') }}</el-button> -->
</div>
<div
class=
"con-box"
>
<div
class=
"con-box"
v-loading=
"loading"
>
<ul
class=
"course-list"
>
<
template
v-for=
"(item, index) in homeList"
>
<li
v-bind:key=
"index"
class=
"item"
>
...
...
@@ -101,7 +101,8 @@ export default {
homeList
:
[],
// 从后台请求
param
:
{},
timeInterval
:
null
,
newLiveMsg
:
{}
newLiveMsg
:
{},
loading
:
false
}
},
mounted
()
{
...
...
@@ -138,12 +139,15 @@ export default {
this
.
$router
.
push
({
path
:
`/app/learn/course-detail/
${
cid
}
`
})
},
getAjaxList
(
bool
,
str
)
{
this
.
loading
=
true
cAction
.
Course
.
getCourseList
(
bool
,
this
.
param
).
then
(
json
=>
{
this
.
homeList
=
json
if
(
!
json
.
length
)
{
this
.
$message
(
str
)
}
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{})
}).
catch
(
e
=>
{
this
.
$message
.
error
(
e
.
message
)
}).
finally
(()
=>
{
this
.
loading
=
false
})
},
/**
* 分类选择 - 选中某一项
...
...
src/pages/learn/courseDetail.vue
浏览文件 @
b9a48a84
...
...
@@ -541,7 +541,7 @@ export default {
window
.
open
(
data
.
live
.
record_url
||
data
.
live
.
join_url
)
return
}
this
.
$router
.
push
({
name
:
'viewerCourseChapter'
,
params
:
{
cid
,
id
:
data
.
id
}
})
this
.
$router
.
push
({
name
:
'viewerCourseChapter'
,
params
:
{
cid
,
id
:
data
.
id
}
,
query
:
{
offset
:
data
.
offset
}
})
},
/**
* 开始学习或继续学习 - 跳转到对应音视频播放页
...
...
src/pages/mobile/list.vue
浏览文件 @
b9a48a84
...
...
@@ -26,7 +26,7 @@
<
div
class
=
"live-item-content"
>
<
div
class
=
"live-item-content__title"
>
{{
subitem
.
topic
}}
<
/div
>
<
div
class
=
"live-item-content__time"
>
{{
subitem
.
start_time
}}
<
/div
>
<
div
class
=
"live-item-content__status"
>
{{
calcTimeText
(
subitem
.
start_time
,
subitem
.
live_status
)
}}
<
/div
>
<
div
class
=
"live-item-content__status"
>
{{
calcTimeText
(
subitem
)
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -178,7 +178,8 @@ export default {
url && window.open(url, '_blank')
}
,
// 计算日期
calcTimeText(liveTime, liveStatus) {
calcTimeText(data) {
let { start_time: liveTime, live_status: liveStatus
}
= data
const map = {
1: this.$t('live.notStarted'),
2: this.$t('live.liveStreaming'),
...
...
@@ -208,6 +209,9 @@ export default {
}
)
}
}
if (liveStatus === 3 && data.enable_record && data.record_url) {
result = this.$t('live.watchReplay')
}
return result
}
}
,
...
...
src/pages/other/message.vue
浏览文件 @
b9a48a84
...
...
@@ -6,7 +6,7 @@
<template
v-for=
"(item, index) in msgList"
>
<el-collapse-item
v-bind:key=
"index"
:name=
"index"
>
<template
slot=
"title"
>
<el-badge
:is-dot=
"!item.isShow"
class=
"item"
>
系统通知
</el-badge>
<el-badge
:is-dot=
"!item.isShow"
class=
"item"
>
{{
item
.
title
||
'系统通知'
}}
</el-badge>
</
template
>
<div
v-html=
"item.text"
></div>
</el-collapse-item>
...
...
@@ -21,7 +21,7 @@
:total=
"page.total"
:hide-on-single-page=
"true"
@
current-change=
"handleCurrentChange"
style=
"margin:
0 auto;padding:40px 0;text-align:center;
"
style=
"margin:
0 auto; padding: 40px 0; text-align: center
"
></el-pagination>
</div>
</div>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论