Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tea-resources-web
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张伯涛
tea-resources-web
Commits
0d2b602c
Commit
0d2b602c
authored
Mar 28, 2024
by
张伯涛
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/1.0' into 1.0
parents
b9a969b6
6a1992d9
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
496 additions
and
263 deletions
+496
-263
teaExamExaminationPaper.js
src/api/examination/teaExamExaminationPaper.js
+68
-0
teaExamQuestions.js
src/api/examination/teaExamQuestions.js
+68
-0
index.vue
src/views/contentManagement/centralCase/index.vue
+1
-0
index.vue
src/views/contentManagement/centralCase/info/index.vue
+1
-0
index.vue
src/views/contentManagement/competitionSupport/index.vue
+1
-1
index.vue
src/views/contentManagement/newsInformation/info/index.vue
+5
-2
index.vue
src/views/courseInformation/courseManagement/index.vue
+9
-3
examinationPaper.vue
...rseInformation/examinationManagement/examinationPaper.vue
+281
-212
index.vue
src/views/courseInformation/examinationManagement/index.vue
+18
-3
questionManagement.vue
...eInformation/examinationManagement/questionManagement.vue
+32
-33
index.vue
src/views/courseInformation/feedback/index.vue
+2
-2
index.vue
src/views/courseInformation/lecturerManagement/index.vue
+10
-7
No files found.
src/api/examination/teaExamExaminationPaper.js
0 → 100644
View file @
0d2b602c
import
request
from
'@/utils/request'
import
Qs
from
'qs'
/**
* 1. 列表查询
* 2. 查询详细信息
* 3. 新增
* 4. 修改
* 5. 逻辑删除
* 6. 导出
*
*/
// 1. 查询试卷表列表
export
function
listTeaExamExaminationPaper
(
query
)
{
return
request
({
url
:
'/teaexamexaminationpaper/queryTeaExamExaminationPaperByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 2. 查询试卷表详细信息
export
function
getTeaExamExaminationPaper
(
businessId
)
{
return
request
({
url
:
'/teaexamexaminationpaper/detail/'
+
businessId
,
method
:
'get'
})
}
// 3. 新增试卷表
export
function
addTeaExamExaminationPaper
(
data
)
{
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/teaexamexaminationpaper/add'
,
method
:
'post'
,
data
:
data
})
}
// 4. 修改试卷表
export
function
updateTeaExamExaminationPaper
(
data
)
{
const
businessId
=
data
.
businessId
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/teaexamexaminationpaper/update/'
+
businessId
,
method
:
'put'
,
data
})
}
// 5. 逻辑删除试卷表
export
function
delTeaExamExaminationPaper
(
businessId
)
{
return
request
({
url
:
'/teaexamexaminationpaper/deleteLogical/'
+
businessId
,
method
:
'delete'
})
}
// 6. 导出试卷表
export
function
exportTeaExamExaminationPaper
(
query
)
{
return
request
({
url
:
'/teaexamexaminationpaper/export'
,
method
:
'get'
,
params
:
query
,
responseType
:
'blob'
})
}
src/api/examination/teaExamQuestions.js
0 → 100644
View file @
0d2b602c
import
request
from
'@/utils/request'
import
Qs
from
'qs'
/**
* 1. 列表查询
* 2. 查询详细信息
* 3. 新增
* 4. 修改
* 5. 逻辑删除
* 6. 导出
*
*/
// 1. 查询试题表列表
export
function
listTeaExamQuestions
(
query
)
{
return
request
({
url
:
'/teaexamquestions/queryTeaExamQuestionsByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 2. 查询试题表详细信息
export
function
getTeaExamQuestions
(
businessId
)
{
return
request
({
url
:
'/teaexamquestions/detail/'
+
businessId
,
method
:
'get'
})
}
// 3. 新增试题表
export
function
addTeaExamQuestions
(
data
)
{
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/teaexamquestions/add'
,
method
:
'post'
,
data
:
data
})
}
// 4. 修改试题表
export
function
updateTeaExamQuestions
(
data
)
{
const
businessId
=
data
.
businessId
data
=
Qs
.
stringify
(
data
)
return
request
({
url
:
'/teaexamquestions/update/'
+
businessId
,
method
:
'put'
,
data
})
}
// 5. 逻辑删除试题表
export
function
delTeaExamQuestions
(
businessId
)
{
return
request
({
url
:
'/teaexamquestions/deleteLogical/'
+
businessId
,
method
:
'delete'
})
}
// 6. 导出试题表
export
function
exportTeaExamQuestions
(
query
)
{
return
request
({
url
:
'/teaexamquestions/export'
,
method
:
'get'
,
params
:
query
,
responseType
:
'blob'
})
}
src/views/contentManagement/centralCase/index.vue
View file @
0d2b602c
...
...
@@ -248,6 +248,7 @@ export default {
res
.
rows
.
forEach
(
item
=>
{
item
.
srclist
=
[]
item
.
srclist
.
push
(
this
.
imagePath
+
item
.
path
)
console
.
log
(
item
.
srclist
)
})
_this
.
tableData
=
res
.
rows
_this
.
fullscreenLoading
=
false
...
...
src/views/contentManagement/centralCase/info/index.vue
View file @
0d2b602c
...
...
@@ -272,6 +272,7 @@ export default {
})
}
else
{
// 新增
form
.
flag
=
'1'
addCmsProject
(
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
...
...
src/views/contentManagement/competitionSupport/index.vue
View file @
0d2b602c
...
...
@@ -55,7 +55,7 @@
<div
style=
"padding:5px 10px"
>
<el-table
class=
"table"
v-loading=
"loading"
border
:data=
"cmsContestList"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"60"
align=
"center"
/>
<el-table-column
label=
"封面"
prop=
"contestPicture"
:show-overflow-tooltip=
"true"
width=
"150"
>
<el-table-column
label=
"封面"
prop=
"contestPicture"
width=
"150"
>
<template
slot-scope=
"scope"
>
<div
:id=
"step(scope.$index)"
class=
"img"
>
<el-image
@
click=
"handleClickStop(scope.$index)"
style=
"width:100px;height:100%;"
:src=
"imagePath+scope.row.url"
:preview-src-list=
"[imagePath+scope.row.url]"
/>
...
...
src/views/contentManagement/newsInformation/info/index.vue
View file @
0d2b602c
...
...
@@ -98,9 +98,11 @@
</el-row>
<el-row>
<el-col
:span=
"18"
>
<el-col
:span=
"18"
>
<el-form-item
label=
"新闻内容:"
prop=
"remarks"
>
<div
class=
"ql-editor"
>
<vue-editor
id=
"editorsay"
v-model=
"form.details"
:editor-toolbar=
"customToolbar"
@
image-added=
"handleImageAdded"
/>
</div>
</el-form-item>
</el-col>
...
...
@@ -314,6 +316,7 @@ export default {
})
}
else
{
// 新增
form
.
flag
=
'1'
addSysContentNewsInformation
(
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
...
...
src/views/courseInformation/courseManagement/index.vue
View file @
0d2b602c
...
...
@@ -280,7 +280,7 @@
:class=
"commonField.updateClass"
:type=
"commonField.typeParent"
:size=
"commonField.size"
@
click=
"handleExamination(scope.
$index
)"
@
click=
"handleExamination(scope.
row
)"
>
考试管理
</el-button>
<el-button
:class=
"commonField.updateClass"
...
...
@@ -622,6 +622,7 @@ export default {
obj
.
id
=
i
+
1
obj
.
tcode
=
pages
[
i
].
code
obj
.
tlessonName
=
pages
[
i
].
lessonName
obj
.
bussinessId
=
pages
[
i
].
businessId
obj
.
tname
=
pages
[
i
].
name
obj
.
tsex
=
(
pages
[
i
].
sex
==
'1'
)
?
'女'
:
'男'
obj
.
imageSrc
=
pages
[
i
].
defaultUrl
?
pages
[
i
].
defaultUrl
:
require
(
'@/assets/image/test.png'
)
...
...
@@ -762,9 +763,14 @@ export default {
}
},
// 跳转考试管理
handleExamination
(
index
)
{
handleExamination
(
data
)
{
console
.
log
(
'data'
,
data
)
this
.
$router
.
push
({
path
:
'/courseInformation/examinationManagement/index'
path
:
'/courseInformation/examinationManagement/index'
,
query
:
{
bussinessId
:
data
.
bussinessId
,
name
:
data
.
tlessonName
}
})
},
// 下载模板
...
...
src/views/courseInformation/examinationManagement/examinationPaper.vue
View file @
0d2b602c
...
...
@@ -5,19 +5,18 @@
<div
class=
"search"
style=
"border-bottom: 14px solid #f4f4f4"
>
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"题目编号"
prop=
"title"
>
<el-input
v-model=
"queryParams.
title
"
placeholder=
"请输入标题"
:maxlength=
"15"
style=
"margin-right: 15px"
/>
<el-input
v-model=
"queryParams.
number
"
placeholder=
"请输入标题"
:maxlength=
"15"
style=
"margin-right: 15px"
/>
</el-form-item>
<el-form-item
label=
"题型"
prop=
"
unit
"
>
<el-select
v-model=
"queryParams.
unit
"
placeholder=
"请选择题型"
style=
"width: 200px"
>
<el-form-item
label=
"题型"
prop=
"
题型
"
>
<el-select
v-model=
"queryParams.
questionType
"
placeholder=
"请选择题型"
style=
"width: 200px"
>
<el-option
label=
"单选题"
value=
"1"
/>
<el-option
label=
"多选题"
value=
"2"
/>
<el-option
label=
"判断题"
value=
"3"
/>
<el-option
label=
"填空题"
value=
"4"
/>
<el-option
label=
"简答题"
value=
"5"
/>
<el-option
label=
"简答题"
value=
"4"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"题目难度"
prop=
"unit"
>
<el-select
v-model=
"queryParams.
unit
"
placeholder=
"请选择题目难度"
style=
"width: 200px"
>
<el-select
v-model=
"queryParams.
difficulty
"
placeholder=
"请选择题目难度"
style=
"width: 200px"
>
<el-option
label=
"简单"
value=
"1"
/>
<el-option
label=
"一般"
value=
"2"
/>
<el-option
label=
"困难"
value=
"3"
/>
...
...
@@ -50,12 +49,6 @@
:size=
"commonField.smallSize"
@
click=
"handleAdd"
>
{{
commonField
.
addName
}}
</el-button>
<el-button
:class=
"commonField.importClass"
:type=
"commonField.typeWarning"
:icon=
"commonField.importIcon"
:size=
"commonField.smallSize"
>
{{
commonField
.
importName
}}
</el-button>
<!--
<input
id=
"btn_file"
type=
"file"
style=
"display:none"
@
change=
"fileupload"
>
-->
</el-form-item>
</div>
...
...
@@ -70,10 +63,10 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"
title
"
label=
"题目编号"
width=
"120"
show-overflow-tooltip
/>
<el-table-column
prop=
"
t
ype"
label=
"题型"
width=
"100"
show-overflow-tooltip
>
<el-table-column
prop=
"
number
"
label=
"题目编号"
width=
"120"
show-overflow-tooltip
/>
<el-table-column
prop=
"
questionT
ype"
label=
"题型"
width=
"100"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<span>
{{
typeChange
(
scope
.
row
.
t
ype
)
}}
</span>
<span>
{{
typeChange
(
scope
.
row
.
questionT
ype
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"difficulty"
label=
"难度"
width=
"100"
>
...
...
@@ -81,16 +74,16 @@
<span>
{{
difficultyChange
(
scope
.
row
.
difficulty
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"content"
label=
"题干"
show-overflow-tooltip
/>
<!-- <el-table-column prop="content" label="题目内容" show-overflow-tooltip />-->
<el-table-column
prop=
"questionStem"
label=
"题干"
show-overflow-tooltip
/>
<el-table-column
prop=
"answer"
label=
"标准答案"
width=
"100"
show-overflow-tooltip
/>
<el-table-column
prop=
"createAt"
label=
"创建时间"
width=
"180"
/>
<el-table-column
prop=
"fraction"
label=
"分数"
width=
"100"
/>
<el-table-column
prop=
"status"
label=
"状态"
width=
"100"
>
<el-table-column
prop=
"createDate"
label=
"创建时间"
width=
"180"
/>
<el-table-column
prop=
"mark"
label=
"分数"
width=
"100"
/>
<el-table-column
prop=
"weight"
label=
"权重"
width=
"120"
show-overflow-tooltip
/>
<el-table-column
prop=
"flag"
label=
"状态"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-switch
v-model=
"scope.row.
status
"
v-model=
"scope.row.
flag
"
class=
"switchDisabledStyle"
inactive-value=
"0"
active-value=
"1"
...
...
@@ -98,7 +91,7 @@
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"15
0"
>
<el-table-column
label=
"操作"
width=
"10
0"
>
<
template
slot-scope=
"scope"
>
<el-button
:class=
"commonField.updateClass"
...
...
@@ -130,62 +123,79 @@
:visible
.
sync=
"dialogFormVisible"
width=
"50%"
>
<el-form
:model=
"form"
:label-position=
"labelPosition"
label-width=
"80px"
:rules=
"rules"
>
<el-form
ref=
"form"
:model=
"form"
:label-position=
"labelPosition"
label-width=
"80px"
:rules=
"rules"
>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"题型"
prop=
"type"
>
<el-select
v-model=
"form.type"
class=
"selectClass"
placeholder=
"请选择题目类型"
>
<el-option
label=
"单选题"
value=
"1"
/>
<el-option
label=
"多选题"
value=
"2"
/>
<el-option
label=
"判断题"
value=
"3"
/>
<el-option
label=
"填空题"
value=
"4"
/>
<el-option
label=
"简答题"
value=
"5"
/>
<el-form-item
label=
"题型"
prop=
"questionType"
>
<el-select
v-model=
"form.questionType"
class=
"selectClass"
placeholder=
"请选择题目类型"
>
<el-option
v-for=
"item in questionTypeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"题目难度"
prop=
"difficulty"
>
<el-select
v-model=
"form.difficulty"
class=
"selectClass"
placeholder=
"请选择题目难度"
>
<el-option
label=
"简单"
value=
"1"
/>
<el-option
label=
"一般"
value=
"2"
/>
<el-option
label=
"困难"
value=
"3"
/>
<el-option
v-for=
"item in difficultyList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"题干"
prop=
"
content
"
>
<el-input
v-model=
"form.
content
"
type=
"textarea"
:rows=
"4"
placeholder=
"请输入题干"
/>
<el-form-item
label=
"题干"
prop=
"
questionStem
"
>
<el-input
v-model=
"form.
questionStem
"
type=
"textarea"
:rows=
"4"
placeholder=
"请输入题干"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"0"
>
<el-col
:span=
"12"
>
<el-row>
<el-col
v-if=
"form.questionType===1||form.questionType===2||form.questionType===3"
:span=
"12"
>
<!-- //根据条件判断是否表单校验-->
<el-form-item
label=
"选项A"
prop=
"optionA"
>
<el-input
v-model=
"form.optionA"
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-col
v-if=
"form.questionType===1||form.questionType===2||form.questionType===3"
:span=
"12"
>
<el-form-item
label=
"选项B"
prop=
"optionB"
>
<el-input
v-model=
"form.optionB"
placeholder=
"请输入"
/>
</el-form-item>
</el-col></el-row>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
v-if=
"form.questionType===1||form.questionType===2"
:span=
"12"
>
<el-form-item
label=
"选项C"
prop=
"optionC"
>
<el-input
v-model=
"form.optionC"
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-col
v-if=
"form.questionType===1||form.questionType===2"
:span=
"12"
>
<el-form-item
label=
"选项D"
prop=
"optionD"
>
<el-input
v-model=
"form.optionD"
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<!-- 如果是单选题显示单选框-->
<el-col
v-if=
"form.questionType===1"
:span=
"16"
>
<el-form-item
label=
"题目答案"
prop=
"answer"
>
<el-radio-group
v-model=
"form.answer"
>
<el-radio
label=
"A"
>
A
</el-radio>
<el-radio
label=
"B"
>
B
</el-radio>
<el-radio
label=
"C"
>
C
</el-radio>
<el-radio
label=
"D"
>
D
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
v-if=
"form.questionType===2"
:span=
"16"
>
<el-form-item
label=
"题目答案"
prop=
"answer"
>
<!-- 四个多选框-->
<el-checkbox-group
v-model=
"form.answer"
>
...
...
@@ -196,34 +206,70 @@
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col
v-if=
"form.questionType===3"
:span=
"16"
>
<el-form-item
label=
"题目答案"
prop=
"answer"
>
<el-radio-group
v-model=
"form.answer"
>
<el-radio
label=
"对"
>
对
</el-radio>
<el-radio
label=
"错"
>
错
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
v-if=
"form.questionType===4"
:span=
"16"
>
<el-form-item
label=
"题目答案"
prop=
"answer"
>
<el-input
v-model=
"form.answer"
placeholder=
"请输入答案"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 题目描述-->
<el-col
:span=
"24"
>
<el-form-item
label=
"题目描述"
prop=
"remarks"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
:rows=
"4"
placeholder=
"请输入题目描述"
/>
</el-form-item>
</el-col>
</el-row>
<el-row
:gutter=
"0"
>
<el-row>
<!-- 分数-->
<el-col
:span=
"12"
>
<el-form-item
label=
"分数"
prop=
"
fraction
"
>
<el-input
v-model=
"form.
fraction"
placeholder=
"请输入
"
/>
<el-form-item
label=
"分数"
prop=
"
mark
"
>
<el-input
v-model=
"form.
mark"
placeholder=
"请输入分数
"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"题目编号"
prop=
"number"
>
<el-input
v-model=
"form.number"
placeholder=
"请输入题目编号"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 权重-->
<el-col
:span=
"12"
>
<el-form-item
label=
"权重"
prop=
"weight"
>
<el-input-number
v-model=
"form.weight"
placeholder=
"请输入权重"
controls-position=
"right"
:min=
"0"
:max=
"9999"
class=
"selectClass"
/>
</el-form-item>
</el-col>
<!-- 状态-->
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
prop=
"status
"
>
<el-radio-group
v-model=
"form.status
"
>
<el-form-item
label=
"状态"
prop=
"flag
"
>
<el-radio-group
v-model=
"form.flag
"
>
<el-radio
label=
"1"
>
启用
</el-radio>
<el-radio
label=
"0"
>
停用
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 题目答案-->
</el-row>
</el-row></el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"
dialogFormVisible = false
"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"
addQuestion
"
>
确 定
</el-button>
<el-button
@
click=
"
cancel
"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"
submit
"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
...
...
@@ -231,10 +277,21 @@
<
script
>
import
commonField
from
'@/utils/commonField'
import
{
updateProjectStatus
,
delCmsProject
,
listCmsProject
}
from
'@/api/contentManagement/cmsProject'
import
{
parseTime
}
from
'@/utils'
import
{
addTeaExamQuestions
,
delTeaExamQuestions
,
listTeaExamQuestions
,
updateTeaExamQuestions
}
from
'@/api/examination/teaExamQuestions'
export
default
{
name
:
'ExaminationPaper'
,
props
:
{
bussinessId
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
imageSrc
:
require
(
'@/assets/image/test.png'
),
...
...
@@ -244,114 +301,59 @@ export default {
courseContent
:
true
,
curCat
:
false
},
tableData
:
[],
// 对话框
dialogFormVisible
:
false
,
dialogVisible
:
false
,
// 新增课程
form
:
{
title
:
''
,
type
:
'1'
,
difficulty
:
'1
'
,
status
:
'1'
,
number
:
''
,
questionType
:
1
,
questionStem
:
'
'
,
difficulty
:
1
,
content
:
''
,
answer
:
''
answer
:
''
,
optionA
:
''
,
optionB
:
''
,
optionC
:
''
,
optionD
:
''
,
mark
:
''
,
flag
:
'1'
,
remarks
:
''
,
weight
:
''
},
// 题型lIst
questionTypeList
:
[
{
label
:
'单选题'
,
value
:
1
},
{
label
:
'多选题'
,
value
:
2
},
{
label
:
'判断题'
,
value
:
3
},
{
label
:
'简答题'
,
value
:
4
}
],
// 难度List
difficultyList
:
[
{
label
:
'简单'
,
value
:
1
},
{
label
:
'一般'
,
value
:
2
},
{
label
:
'困难'
,
value
:
3
}
],
// 课程方向
courseDirection
:
[],
formLabelWidth
:
'90px'
,
// 表格
tableData
:
[
{
title
:
'Q0001'
,
content
:
'使用公共链接分享仪表板给用户,仪表板进行修改后,需要再次发送分享链接'
,
type
:
'3'
,
difficulty
:
'1'
,
createAt
:
'2022-01-15 09:30:00'
,
creator
:
'管理员'
,
status
:
'2'
,
answer
:
'对'
,
fraction
:
'5'
},
{
title
:
'Q0002'
,
content
:
'表格相较于图形,特有表头排序和表头过滤功能'
,
type
:
'4'
,
difficulty
:
'3'
,
createAt
:
'2022-01-15 09:30:00'
,
creator
:
'管理员'
,
status
:
'2'
,
answer
:
'我的分析中的数据'
,
fraction
:
'10'
},
{
title
:
'Q0003'
,
content
:
'分组表和交叉表支持设置数据条,明细表和图表不支持'
,
type
:
'2'
,
difficulty
:
'1'
,
createAt
:
'2022-01-15 09:30:00'
,
creator
:
'管理员'
,
status
:
'1'
,
answer
:
'A,B'
,
fraction
:
'5'
},
{
title
:
'Q0004'
,
content
:
'分析主题不支持不同用户之间进行协作编辑'
,
type
:
'4'
,
difficulty
:
'1'
,
createAt
:
'2022-01-15 09:30:00'
,
creator
:
'管理员'
,
status
:
'1'
,
answer
:
'当前指标百分比为当前细粒度数据占该指标内所有维度的细粒度数据差的百分比'
,
fraction
:
'3'
},
{
title
:
'Q0005'
,
content
:
'如果想让FineBI表格的第一列显示为序号,应该如何设置'
,
type
:
'1'
,
difficulty
:
'1'
,
createAt
:
'2022-01-15 09:30:00'
,
creator
:
'管理员'
,
status
:
'2'
,
answer
:
'A'
,
fraction
:
'5'
}
],
// 表单验证
rules
:
{
title
:
[
{
required
:
true
,
message
:
'请输入题目编号'
,
trigger
:
'blur'
}
],
type
:
[
{
required
:
true
,
message
:
'请选择题目类型'
,
trigger
:
'change'
}
],
difficulty
:
[
{
required
:
true
,
message
:
'请选择题目难度'
,
trigger
:
'change'
}
],
status
:
[
{
required
:
true
,
message
:
'请选择状态'
,
trigger
:
'change'
}
],
content
:
[
{
required
:
true
,
message
:
'请输入题干'
,
trigger
:
'blur'
}
],
answer
:
[
{
required
:
true
,
message
:
'请输入题目答案'
,
trigger
:
'change'
}
],
optionA
:
[
{
required
:
true
,
message
:
'请输入选项A'
,
trigger
:
'blur'
}
],
optionB
:
[
{
required
:
true
,
message
:
'请输入选项B'
,
trigger
:
'blur'
}
],
optionC
:
[
{
required
:
true
,
message
:
'请输入选项C'
,
trigger
:
'blur'
}
],
optionD
:
[
{
required
:
true
,
message
:
'请输入选项D'
,
trigger
:
'blur'
}
],
fraction
:
[
{
required
:
true
,
message
:
'请输入分数'
,
trigger
:
'blur'
}
]
number
:
[{
required
:
true
,
message
:
'请输入题目编号'
,
trigger
:
'blur'
}],
questionType
:
[{
required
:
true
,
message
:
'请选择题目类型'
,
trigger
:
'change'
}],
questionStem
:
[{
required
:
true
,
message
:
'请输入题干'
,
trigger
:
'blur'
}],
difficulty
:
[{
required
:
true
,
message
:
'请选择题目难度'
,
trigger
:
'change'
}],
content
:
[{
required
:
true
,
message
:
'请输入内容'
,
trigger
:
'blur'
}],
answer
:
[{
required
:
true
,
message
:
'请输入答案'
,
trigger
:
'blur'
}],
optionA
:
[{
required
:
true
,
message
:
'请输入选项A'
,
trigger
:
'blur'
}],
optionB
:
[{
required
:
true
,
message
:
'请输入选项B'
,
trigger
:
'blur'
}],
optionC
:
[{
required
:
true
,
message
:
'请输入选项C'
,
trigger
:
'blur'
}],
optionD
:
[{
required
:
true
,
message
:
'请输入选项D'
,
trigger
:
'blur'
}],
mark
:
[{
required
:
true
,
message
:
'请输入分数'
,
trigger
:
'blur'
}],
weight
:
[{
required
:
true
,
message
:
'请输入权重'
,
trigger
:
'blur'
}],
flag
:
[{
required
:
true
,
message
:
'请选择状态'
,
trigger
:
'change'
}]
},
lineindex
:
0
,
teacode
:
''
,
...
...
@@ -377,7 +379,9 @@ export default {
queryParams
:
{
page
:
1
,
rows
:
10
,
title
:
''
number
:
''
,
questionType
:
''
,
difficulty
:
''
},
// pagination
total
:
10
,
...
...
@@ -398,15 +402,21 @@ export default {
return
commonField
}
},
watch
:
{
bussinessId
:
{
handler
:
function
(
val
)
{
console
.
log
(
'bussinessId'
,
val
)
},
immediate
:
true
}
},
created
()
{
console
.
log
(
'bussinessId'
,
this
.
bussinessId
)
},
mounted
:
function
()
{
this
.
loadData
()
},
methods
:
{
step
(
index
)
{
return
'step'
+
index
},
/**
* @description: 点击蒙版关闭预览图片
* @author: gaoyu
...
...
@@ -425,6 +435,41 @@ export default {
})
})
},
// 保存方法
submit
()
{
// 拷贝form
const
form
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
))
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
businessId
!==
undefined
)
{
// 编辑
updateTeaExamQuestions
(
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
message
:
'保存成功'
,
type
:
'success'
})
this
.
$router
.
push
({
path
:
'/contentManagement/centralCase/index'
})
}
})
}
else
{
// 新增
addTeaExamQuestions
(
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
$message
({
message
:
'保存成功'
,
type
:
'success'
})
this
.
cancel
()
this
.
loadData
()
}
})
}
}
})
},
// 日期格式转换
replace
(
time
)
{
return
parseTime
(
time
,
'{y}/{m}/{d}:{h}:{i}'
)
...
...
@@ -435,62 +480,62 @@ export default {
this
.
queryParams
=
{
page
:
1
,
rows
:
10
,
title
:
''
,
unit
:
''
number
:
''
,
questionType
:
''
,
difficulty
:
''
}
this
.
loadData
()
},
// 题目type转换
typeChange
(
type
)
{
if
(
type
===
'1'
)
{
if
(
type
===
1
)
{
return
'单选题'
}
else
if
(
type
===
'2'
)
{
}
else
if
(
type
===
2
)
{
return
'多选题'
}
else
if
(
type
===
'3'
)
{
}
else
if
(
type
===
3
)
{
return
'判断题'
}
else
if
(
type
===
'4'
)
{
return
'填空题'
}
else
if
(
type
===
'5'
)
{
}
else
if
(
type
===
4
)
{
return
'简答题'
}
},
// 难度转换
difficultyChange
(
difficulty
)
{
if
(
difficulty
===
'1'
)
{
if
(
difficulty
===
1
)
{
return
'简单'
}
else
if
(
difficulty
===
'2'
)
{
}
else
if
(
difficulty
===
2
)
{
return
'一般'
}
else
if
(
difficulty
===
'3'
)
{
}
else
if
(
difficulty
===
3
)
{
return
'困难'
}
},
// loadData() {
// // 列表渲染数据
// var data = []
// const _this = this
// this.tableData = []
// _this.fullscreenLoading = true
// const params = {
// page: _this.queryParams.page,
// rows: _this.queryParams.rows,
// title: _this.queryParams.title,
// unit: _this.queryParams.unit
// }
// listCmsProject(params).then(res => {
// var pages = res.rows// 查询过来的每页数据
// _this.total = res.total// 总记录数
// _this.bussid = []
// res.rows.forEach(item => {
// item.srclist = []
// item.srclist.push(item.path)
// })
// _this.tableData = res.rows
// _this.fullscreenLoading = false
// if (res.rows.length === 0) {
// _this.tableDataTips = '暂无数据'
// }
// })
// },
loadData
()
{
// 列表渲染数据
var
data
=
[]
const
_this
=
this
this
.
tableData
=
[]
_this
.
fullscreenLoading
=
true
const
params
=
{
page
:
_this
.
queryParams
.
page
,
rows
:
_this
.
queryParams
.
rows
,
number
:
_this
.
queryParams
.
number
,
questionType
:
_this
.
queryParams
.
questionType
,
difficulty
:
_this
.
queryParams
.
difficulty
}
listTeaExamQuestions
(
params
).
then
(
res
=>
{
var
pages
=
res
.
rows
// 查询过来的每页数据
_this
.
total
=
res
.
total
// 总记录数
_this
.
bussid
=
[]
res
.
rows
.
forEach
(
item
=>
{
item
.
srclist
=
[]
item
.
srclist
.
push
(
item
.
path
)
})
_this
.
tableData
=
res
.
rows
_this
.
fullscreenLoading
=
false
if
(
res
.
rows
.
length
===
0
)
{
_this
.
tableDataTips
=
'暂无数据'
}
})
},
// 修改状态
// handleStatusChange(row) {
// const text = row.flag === '1' ? '启用' : '停用'
...
...
@@ -536,18 +581,42 @@ export default {
cancelButtonText
:
'取消'
,
type
:
'warning'
})
// .then(function() {
// return delCmsProject(id)
// }).then(() => {
// this.loadData()
// this.$message({
// message: '删除成功',
// type: 'success'
// })
// }).catch(function() {
// })
.
then
(
function
()
{
return
delTeaExamQuestions
(
id
)
}).
then
(()
=>
{
this
.
loadData
()
this
.
$message
({
message
:
'删除成功'
,
type
:
'success'
})
}).
catch
(
function
()
{
})
},
cancel
()
{
this
.
dialogFormVisible
=
false
// 重置表单
this
.
$refs
.
form
.
resetFields
()
this
.
resetForm
()
},
// 重置表单
resetForm
()
{
this
.
form
=
{
number
:
''
,
questionType
:
1
,
questionStem
:
''
,
difficulty
:
1
,
content
:
''
,
answer
:
''
,
optionA
:
''
,
optionB
:
''
,
optionC
:
''
,
optionD
:
''
,
mark
:
''
,
del_flag
:
'1'
,
remarks
:
''
,
weight
:
''
}
},
// 封面图片预览
justEnter
(
event
)
{
// });
...
...
src/views/courseInformation/examinationManagement/index.vue
View file @
0d2b602c
...
...
@@ -2,9 +2,9 @@
<
template
>
<div
class=
"app-container"
>
<!-- 标题-->
<div
class=
"examinationTitle"
>
大数据平台核心技术
</div>
<div
class=
"examinationTitle"
>
{{
name
}}
</div>
<el-tabs
v-model=
"activeName"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"tabClick"
>
<el-tab-pane
label=
"试题管理"
name=
"ExaminationPaper"
/>
<el-tab-pane
label=
"试卷管理"
name=
"QuestionManagement"
/>
</el-tabs>
...
...
@@ -23,14 +23,29 @@ export default {
ExaminationPaper
,
QuestionManagement
},
// 向子组件QuestionManagement传递参数bussinessId
data
()
{
return
{
activeName
:
'ExaminationPaper'
// 标签默认选中
activeName
:
'ExaminationPaper'
,
// 标签默认选中
bussinessId
:
''
,
// 业务id
name
:
''
// 课程名称
}
},
created
()
{
// 接受路由传递的参数
this
.
bussinessId
=
this
.
$route
.
query
.
bussinessId
this
.
name
=
this
.
$route
.
query
.
name
console
.
log
(
this
.
bussinessId
,
this
.
name
)
},
methods
:
{
tabClick
()
{
// 在tab切换时更新bussinessId
if
(
this
.
activeName
===
'ExaminationPaper'
)
{
this
.
bussinessId
=
'123'
// 传递给ExaminationPaper组件的业务id值
}
else
if
(
this
.
activeName
===
'QuestionManagement'
)
{
this
.
bussinessId
=
'456'
// 传递给QuestionManagement组件的业务id值
}
}
}
}
</
script
>
...
...
src/views/courseInformation/examinationManagement/questionManagement.vue
View file @
0d2b602c
...
...
@@ -6,7 +6,7 @@
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"填写人"
>
<el-input
v-model=
"queryParams.
unit
"
placeholder=
"请输入填写人"
clearable
/>
<el-input
v-model=
"queryParams.
answerName
"
placeholder=
"请输入填写人"
clearable
/>
</el-form-item>
<!-- 状态-->
<el-form-item
label=
"状态"
>
...
...
@@ -56,17 +56,17 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"
student
Name"
label=
"填写人"
show-overflow-tooltip
/>
<el-table-column
prop=
"
examDat
e"
label=
"填写时间"
/>
<el-table-column
prop=
"
status
"
label=
"状态"
>
<el-table-column
prop=
"
answer
Name"
label=
"填写人"
show-overflow-tooltip
/>
<el-table-column
prop=
"
fillingTim
e"
label=
"填写时间"
/>
<el-table-column
prop=
"
flag
"
label=
"状态"
>
<
template
slot-scope=
"scope"
>
{{
statusChange
(
scope
.
row
.
status
)
}}
{{
statusChange
(
scope
.
row
.
flag
)
}}
</
template
>
</el-table-column>
<!-- 得分-->
<el-table-column
prop=
"score"
label=
"得分"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.
status === '1
'"
>
{{
scope
.
row
.
score
}}
</span>
<span
v-if=
"scope.row.
flag === '0
'"
>
{{
scope
.
row
.
score
}}
</span>
<span
v-else
>
-
</span>
</
template
>
</el-table-column>
...
...
@@ -163,6 +163,7 @@
import
commonField
from
'@/utils/commonField'
import
{
updateProjectStatus
,
delCmsProject
,
listCmsProject
}
from
'@/api/contentManagement/cmsProject'
import
{
parseTime
}
from
'@/utils'
import
{
listTeaExamExaminationPaper
}
from
'@/api/examination/teaExamExaminationPaper'
export
default
{
name
:
'QuestionManagement'
,
data
()
{
...
...
@@ -353,33 +354,31 @@ export default {
return
'困难'
}
},
// loadData() {
// // 列表渲染数据
// var data = []
// const _this = this
// this.tableData = []
// _this.fullscreenLoading = true
// const params = {
// page: _this.queryParams.page,
// rows: _this.queryParams.rows,
// title: _this.queryParams.title,
// unit: _this.queryParams.unit
// }
// listCmsProject(params).then(res => {
// var pages = res.rows// 查询过来的每页数据
// _this.total = res.total// 总记录数
// _this.bussid = []
// res.rows.forEach(item => {
// item.srclist = []
// item.srclist.push(item.path)
// })
// _this.tableData = res.rows
// _this.fullscreenLoading = false
// if (res.rows.length === 0) {
// _this.tableDataTips = '暂无数据'
// }
// })
// },
loadData
()
{
// 列表渲染数据
var
data
=
[]
const
_this
=
this
this
.
tableData
=
[]
_this
.
fullscreenLoading
=
true
const
params
=
{
page
:
_this
.
queryParams
.
page
,
rows
:
_this
.
queryParams
.
rows
}
listTeaExamExaminationPaper
(
params
).
then
(
res
=>
{
var
pages
=
res
.
rows
// 查询过来的每页数据
_this
.
total
=
res
.
total
// 总记录数
_this
.
bussid
=
[]
res
.
rows
.
forEach
(
item
=>
{
item
.
srclist
=
[]
item
.
srclist
.
push
(
item
.
path
)
})
_this
.
tableData
=
res
.
rows
_this
.
fullscreenLoading
=
false
if
(
res
.
rows
.
length
===
0
)
{
_this
.
tableDataTips
=
'暂无数据'
}
})
},
// 修改状态
// handleStatusChange(row) {
// const text = row.flag === '1' ? '启用' : '停用'
...
...
src/views/courseInformation/feedback/index.vue
View file @
0d2b602c
...
...
@@ -110,7 +110,7 @@
<!-- <span>{{ scope.row.createDate | transformDateByFormat('YYYY-MM-DD HH:mm') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"
20
0px"
>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"
13
0px"
>
<
template
slot-scope=
"scope"
>
<el-button
:class=
"commonField.updateClass"
...
...
src/views/courseInformation/lecturerManagement/index.vue
View file @
0d2b602c
...
...
@@ -51,13 +51,11 @@
<div
class=
"mb12 font-small-bold"
>
讲师信息表列表
</div>
<el-table
v-loading=
"loading"
border
:data=
"cmsLecturerList"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"头像"
prop=
"avatarId"
:show-overflow-tooltip=
"true"
width=
"150"
>
<el-table-column
label=
"头像"
prop=
"avatarId"
width=
"150"
>
<template
slot-scope=
"scope"
>
<div
:id=
"step(scope.$index)"
class=
"img"
>
<!--
<el-image
@
click=
"handleClickStop(scope.$index)"
style=
"width:100px;height:100%;"
:src=
"imagePath+scope.row.avatarUrl"
:preview-src-list=
"[imagePath+scope.row.avatarUrl]"
/>
-->
<el-avatar
fit=
"fill"
:size=
"30"
:src=
"imagePath+scope.row.avatarUrl"
></el-avatar>
<el-image
@
click=
"handleClickStop(scope.$index)"
fit=
"fill"
class=
"self-avatar"
:src=
"imagePath+scope.row.avatarUrl"
:preview-src-list=
"[imagePath+scope.row.avatarUrl]"
/>
</div>
</
template
>
</el-table-column>
...
...
@@ -97,7 +95,7 @@
<!-- <span>{{ scope.row.createDate | transformDateByFormat('YYYY-MM-DD HH:mm') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"1
7
0px"
>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"1
3
0px"
>
<
template
slot-scope=
"scope"
>
<el-button
:class=
"commonField.updateClass"
...
...
@@ -125,7 +123,7 @@
@
pagination=
"getList"
/>
<!-- 添加或修改讲师信息表配置对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"7
0
0px"
append-to-body
>
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"7
5
0px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"90px"
>
<el-form-item
label=
"姓名"
prop=
"name"
>
<el-input
v-model
.
trim=
"form.name"
placeholder=
"请输入讲师姓名"
/>
...
...
@@ -447,7 +445,11 @@ export default {
//margin: 10px;
//text-align: center!important;
}
.self-avatar
{
width
:
30px
;
height
:
30px
;
border-radius
:
50%
;
}
.placeholder
{
height
:
1
.3vh
;
...
...
@@ -483,4 +485,5 @@ export default {
height
:
178px
;
display
:
block
;
}
</
style
>
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