Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-qa
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-qa
Commits
f9d72fca
提交
f9d72fca
authored
2月 25, 2022
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码更新
上级
c8c0fca7
全部展开
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
125 行增加
和
83 行删除
+125
-83
api.js
src/modules/paper/api.js
+18
-0
QuestionList.vue
src/modules/paper/components/QuestionList.vue
+0
-0
QuestionListItems.vue
src/modules/paper/components/QuestionListItems.vue
+13
-13
List.vue
src/modules/paper/views/List.vue
+46
-25
NewPaper.vue
src/modules/paper/views/NewPaper.vue
+48
-45
没有找到文件。
src/modules/paper/api.js
浏览文件 @
f9d72fca
...
...
@@ -6,3 +6,21 @@ import httpRequest from '@/utils/axios'
export
function
getKnowledge
(
params
)
{
return
httpRequest
.
get
(
'/admin/v1/knowledge-point/search/x1'
,
{
params
})
}
/**
* 获取试卷列表
*/
export
function
getPaperList
(
params
)
{
return
httpRequest
.
get
(
'/api/qbs/admin/v1/question-papers/x1'
,
{
params
})
}
/**
* 新建试卷
*/
export
function
createNewPaper
(
data
)
{
return
httpRequest
.
post
(
'/api/qbs/admin/v1/question-paper'
,
data
)
}
/**
* 获取试卷分类
*/
export
function
getPaperCategory
(
params
)
{
return
httpRequest
.
get
(
`/api/qbs/admin/v1/question-category/tree/
${
params
}
`
,
{
params
})
}
src/modules/paper/components/QuestionList.vue
浏览文件 @
f9d72fca
差异被折叠。
点击展开。
src/modules/paper/components/QuestionListItems.vue
浏览文件 @
f9d72fca
<
template
>
<div>
<div
v-for=
"(item, index) in questionList"
:key=
"index"
>
<!-- 简单题类型 [1,2,3,
4
] :根据判断题的类型渲染 -->
<!-- 简单题类型 [1,2,3,
6
] :根据判断题的类型渲染 -->
<el-card
class=
"boxCard"
v-if=
"signQuestionTypes.includes(item.question_type)"
:id=
"`page$
{index}`">
<div
class=
"boxHeader"
>
<div
class=
"headerLeft"
>
...
...
@@ -40,7 +40,7 @@
</div>
</el-card>
<!-- 复杂题类型 [5,
6
] :根据判断题的类型渲染 复杂利用上面的头部,内部重新写个页面渲染复杂题中的小题-->
<!-- 复杂题类型 [5,
7,8
] :根据判断题的类型渲染 复杂利用上面的头部,内部重新写个页面渲染复杂题中的小题-->
<el-card
class=
"boxCard"
v-if=
"intricacyQuestionTypes.includes(item.question_type)"
:id=
"`page$
{index}`">
<div
class=
"boxHeader"
>
<div
class=
"headerLeft"
>
...
...
@@ -61,7 +61,7 @@
<div
class=
"headerRight"
>
<div
class=
"scoreValue"
>
<span
class=
"lableScore"
>
分数:
</span>
<el-input
v-model=
"item.score
"
></el-input>
<el-input
:value=
"getSubScore(item)
"
></el-input>
</div>
</div>
</div>
...
...
@@ -110,7 +110,13 @@ export default {
intricacyQuestionTypes
:
[
5
,
7
,
8
]
// 复杂题类型
}
},
methods
:
{
// 根据小题的分数计算大题的分数,以至于监听分数变化 s.score*1 是为了下次修改,返回的是字符串变成number类型才可以计算
getSubScore
(
item
)
{
return
item
?.
list
?.
map
(
s
=>
parseInt
(
s
.
score
)
*
1
).
reduce
((
pre
,
em
)
=>
pre
+
em
,
0
)
},
// 返回点击题号的offsettop
handleScroll
(
key
)
{
const
PageId
=
document
.
querySelector
(
'#page'
+
key
)
...
...
@@ -143,7 +149,7 @@ export default {
justify-content
:
space-around
;
.titleType
{
width
:
200px
;
color
:
#
c01c40
;
color
:
#
1890ff
;
}
}
.checkInpt
.title
{
...
...
@@ -184,7 +190,7 @@ export default {
display
:
flex
;
align-items
:
center
;
.boxAnswer
{
color
:
#
c01c40
;
color
:
#
1890ff
;
font-size
:
14px
;
}
}
...
...
@@ -206,7 +212,7 @@ export default {
flex
:
0
.8
;
.intricacyTitle
{
width
:
200px
;
color
:
#
c01c40
;
color
:
#
949091
;
}
}
.intricacyScoreValue
{
...
...
@@ -227,16 +233,10 @@ export default {
display
:
flex
;
align-items
:
center
;
.intricacyAnswer
{
color
:
#
c01c40
;
color
:
#
1890ff
;
font-size
:
14px
;
}
}
}
}
::v-deep
.el-checkbox__label
{
color
:
#c01c40
;
}
input
{
-webkit-appearance
:
checkbox
;
}
</
style
>
src/modules/paper/views/List.vue
浏览文件 @
f9d72fca
...
...
@@ -15,7 +15,8 @@
</template>
<
script
>
const
paperMode
=
[
import
{
getPaperList
,
getPaperCategory
}
from
'../api'
const
paperType
=
[
{
label
:
'选题组卷'
,
value
:
0
},
{
label
:
'自动组卷'
,
value
:
1
}
]
...
...
@@ -23,25 +24,35 @@ export default {
data
()
{
return
{
visible
:
false
,
multipleSelection
:
[]
// 选择项
multipleSelection
:
[],
// 选择项
paperCategoryList
:
[]
}
},
computed
:
{
tableOptions
()
{
return
{
// remote: { httpRequest: getAppList },
remote
:
{
httpRequest
:
getPaperList
,
params
:
{
id
:
''
,
paper_title
:
''
,
paper_type
:
''
,
paper_labels
:
''
,
paper_category
:
''
}
},
filters
:
[
{
type
:
'input'
,
prop
:
'paper
Nam
e'
,
prop
:
'paper
_titl
e'
,
placeholder
:
'请输入试卷名称'
,
label
:
'试卷名称:'
},
{
type
:
'select'
,
prop
:
'paper
Mod
e'
,
prop
:
'paper
_typ
e'
,
placeholder
:
'请选择组卷模式'
,
options
:
paper
Mod
e
,
options
:
paper
Typ
e
,
labelKey
:
'label'
,
valueKey
:
'value'
,
label
:
'组卷模式:'
...
...
@@ -57,8 +68,8 @@ export default {
type
:
'select'
,
prop
:
'paperType'
,
placeholder
:
'请选择试卷分类'
,
options
:
this
.
natureList
,
labelKey
:
'name'
,
options
:
this
.
initTree
,
labelKey
:
'
category_
name'
,
valueKey
:
'id'
,
label
:
'试卷分类:'
}
...
...
@@ -66,30 +77,40 @@ export default {
columns
:
[
{
type
:
'selection'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
type
:
'index'
,
label
:
'序号'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
label
:
'组卷模式'
,
prop
:
'paper
Mod
e'
},
{
label
:
'试卷分类'
,
prop
:
'paper
Type
'
},
{
label
:
'试卷名称'
,
prop
:
'paper
Nam
e'
},
{
label
:
'总分'
,
prop
:
'paper
TotalS
core'
},
{
label
:
'组卷模式'
,
prop
:
'paper
_typ
e'
},
{
label
:
'试卷分类'
,
prop
:
'paper
_category
'
},
{
label
:
'试卷名称'
,
prop
:
'paper
_titl
e'
},
{
label
:
'总分'
,
prop
:
'paper
_total_s
core'
},
{
label
:
'及格分数'
,
prop
:
'paperPassScore'
},
{
label
:
'更新人'
,
prop
:
'
update_
name'
},
{
label
:
'更新时间'
,
prop
:
'update
_time
'
},
{
label
:
'更新人'
,
prop
:
'
operator.user
name'
},
{
label
:
'更新时间'
,
prop
:
'update
d_at
'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
150
}
],
data
:
[
{
paperMode
:
'选题组卷'
,
paperType
:
'测试'
,
paperName
:
'期中考试'
,
paperTotalScore
:
100
,
paperPassScore
:
60
,
update_name
:
'张三'
,
update_time
:
'2022-02-18'
}
]
// data: [
// {
// paperMode: '选题组卷',
// paperType: '测试',
// paperName: '期中考试',
// paperTotalScore: 100,
// paperPassScore: 60,
// update_name: '张三',
// update_time: '2022-02-18'
// }
// ]
}
}
},
mounted
()
{
// 获取试卷分类
this
.
getPaperCategory
()
},
methods
:
{
getPaperCategory
()
{
getPaperCategory
(
'x1'
).
then
(
res
=>
{
this
.
paperCategoryList
=
res
.
data
})
},
// 新建试卷
handleCreatePaper
()
{
this
.
$router
.
push
({
...
...
src/modules/paper/views/NewPaper.vue
浏览文件 @
f9d72fca
...
...
@@ -4,36 +4,35 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"试卷名称"
prop=
"paper
Nam
e"
prop=
"paper
_titl
e"
:rules=
"[
{ message: '请输入试卷名称', required: true, trigger: 'blur' }]"
>
<el-input
v-model=
"form.paper
Nam
e"
placeholder=
"请输入试卷名称"
/>
<el-input
v-model=
"form.paper
_titl
e"
placeholder=
"请输入试卷名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"试卷用途"
prop=
"paperUse"
>
<el-radio-group
v-model=
"form.paperUse"
>
<el-radio
label=
"0"
>
考试
</el-radio>
<el-radio
label=
"1"
>
作业
</el-radio>
<el-radio
label=
"2"
v-if=
"form.paperUse !== '0'"
>
课后作业
</el-radio>
<el-radio
label=
"3"
v-if=
"form.paperUse !== '0'"
>
课程测试
</el-radio>
<el-col
:span=
"18"
>
<el-form-item
label=
"试卷用途"
prop=
"paper_uses"
>
<el-radio-group
v-model=
"form.paper_uses"
>
<el-radio
:label=
"1"
>
考试
</el-radio>
<el-radio
:label=
"2"
>
课后作业
</el-radio>
<el-radio
:label=
"3"
>
课程测试
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"标签"
prop=
"
label
"
>
<el-input
v-model=
"form.
label
"
placeholder=
"请输入试卷标签"
/>
<el-form-item
label=
"标签"
prop=
"
paper_labels
"
>
<el-input
v-model=
"form.
paper_labels
"
placeholder=
"请输入试卷标签"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"试卷分类"
prop=
"
classification
"
>
<el-select
v-model=
"form.
classification
"
placeholder=
"请选择试卷分类"
style=
"width: 100%"
>
<el-form-item
label=
"试卷分类"
prop=
"
paper_category
"
>
<el-select
v-model=
"form.
paper_category
"
placeholder=
"请选择试卷分类"
style=
"width: 100%"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
...
...
@@ -41,8 +40,8 @@
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"组卷模式"
prop=
"paper
Mod
e"
>
<el-select
v-model=
"form.paper
Mod
e"
placeholder=
"请选择组卷模式"
style=
"width: 100%"
>
<el-form-item
label=
"组卷模式"
prop=
"paper
_typ
e"
>
<el-select
v-model=
"form.paper
_typ
e"
placeholder=
"请选择组卷模式"
style=
"width: 100%"
>
<el-option
label=
"自动组卷"
:value=
"0"
>
</el-option>
<el-option
label=
"选题组卷"
:value=
"1"
>
</el-option>
</el-select>
...
...
@@ -53,11 +52,11 @@
label=
"试题顺序"
:rules=
"[
{ message: '请选择试题顺序', required: true, trigger: 'change' }]"
style="padding-left: 20px"
v-if="form.paper
Mod
e === 1"
v-if="form.paper
_typ
e === 1"
>
<el-radio-group
v-model=
"form.order"
>
<el-radio
label=
"0
"
>
固定
</el-radio>
<el-radio
label=
"1
"
>
随机
</el-radio>
<el-radio-group
v-model=
"form.
paper_question_
order"
>
<el-radio
:label=
"1
"
>
固定
</el-radio>
<el-radio
:label=
"2
"
>
随机
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
...
...
@@ -66,13 +65,13 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"试卷总分"
prop=
"paper
TotalS
core"
prop=
"paper
_total_s
core"
:rules=
"[
{ message: '请输入试卷总分', required: true, trigger: 'blur' }]"
>
<el-input-number
:controls=
"false"
:step=
"1"
v-model=
"form.paper
TotalS
core"
v-model=
"form.paper
_total_s
core"
:min=
"0"
:max=
"200"
placeholder=
"请输入试卷总分"
...
...
@@ -84,14 +83,14 @@
<el-col
:span=
"10"
>
<el-form-item
label=
"及格分数"
prop=
"pa
perPassS
core"
prop=
"pa
ss_s
core"
:rules=
"[
{ message: '请输入及格分数', required: true, trigger: 'blur' }]"
style="padding-left: 20px"
>
<el-input-number
:controls=
"false"
:step=
"1"
v-model=
"form.pa
perPassS
core"
v-model=
"form.pa
ss_s
core"
:min=
"0"
:max=
"200"
placeholder=
"请输入及格分数"
...
...
@@ -105,11 +104,11 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"考试时长"
prop=
"
examDuration
"
prop=
"
paper_times
"
:rules=
"[
{ message: '请输入考试时长', required: true, trigger: 'blur' }]"
>
<el-input-number
v-model=
"form.
examDuration
"
v-model=
"form.
paper_times
"
:controls=
"false"
:min=
"1"
:max=
"150"
...
...
@@ -123,12 +122,12 @@
<el-col
:span=
"12"
>
<el-form-item
label=
"最短交卷时长"
prop=
"min
Sub
time"
prop=
"min
imum_paper_handing_
time"
:rules=
"[
{ message: '请输入考试时长', required: true, trigger: 'blur' }]"
style="padding-left: 20px"
>
<el-input-number
v-model=
"form.min
Sub
time"
v-model=
"form.min
imum_paper_handing_
time"
:controls=
"false"
:min=
"1"
:max=
"150"
...
...
@@ -143,17 +142,17 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"多次考试"
:rules=
"[
{ required: true, trigger: 'blur' }]">
<el-radio-group
v-model=
"form.
moreExam
"
>
<el-radio
label=
"0"
>
否
</el-radio>
<el-radio
label=
"1"
>
是
</el-radio>
<el-radio-group
v-model=
"form.
is_multiple_exams
"
>
<el-radio
:
label=
"0"
>
否
</el-radio>
<el-radio
:
label=
"1"
>
是
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"多次考试成绩计算规则"
style=
"padding-left: 20px"
v-if=
"form.moreExam === '1'"
>
<el-radio-group
v-model=
"form.rule"
>
<el-radio
label=
"0
"
>
平均计算法
</el-radio>
<el-radio
label=
"1
"
>
最高得分法
</el-radio>
<el-radio-group
v-model=
"form.
multiple_test_score_
rule"
>
<el-radio
:label=
"1
"
>
平均计算法
</el-radio>
<el-radio
:label=
"2
"
>
最高得分法
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
...
...
@@ -169,29 +168,30 @@
</
template
>
<
script
>
import
{
createNewPaper
}
from
'../api'
export
default
{
data
()
{
return
{
labelPosition
:
'left'
,
btnDisabled
:
false
,
options
:
[
paper_category
:
[
{
label
:
'测试'
,
value
:
1
},
{
label
:
'考试'
,
value
:
2
},
{
label
:
'模拟'
,
value
:
3
}
],
form
:
{
paper
Nam
e
:
''
,
// 试卷名称
paper
Use
:
'0'
,
// 试卷用途
label
:
''
,
// 标签
classification
:
1
,
// 试卷分类
paper
Mode
:
0
,
// 组卷模式
order
:
'0'
,
// 试题顺序
paper
TotalS
core
:
undefined
,
// 试卷总分
paper
_titl
e
:
''
,
// 试卷名称
paper
_uses
:
1
,
// 试卷用途
paper_labels
:
''
,
// 标签
paper_category
:
1
,
// 试卷分类
paper
_type
:
1
,
// 组卷模式
paper_question_order
:
0
,
// 试题顺序
paper
_total_s
core
:
undefined
,
// 试卷总分
paperPassScore
:
undefined
,
// 及格分数
examDuration
:
undefined
,
// 考试时长
min
Sub
time
:
undefined
,
// 最短交卷时长
moreExam
:
'1'
,
// 多次考试
rule
:
'0'
// 多次考试成绩计算规则
paper_times
:
undefined
,
// 考试时长
min
imum_paper_handing_
time
:
undefined
,
// 最短交卷时长
is_multiple_exams
:
1
,
// 多次考试
multiple_test_score_rule
:
1
// 多次考试成绩计算规则
}
}
},
...
...
@@ -230,6 +230,9 @@ export default {
confirmButtonText
:
'确定'
}).
then
(()
=>
{
history
.
go
(
-
1
)
createNewPaper
(
Object
.
assign
(
this
.
form
,
{
project_prefix
:
'x1'
})).
then
(
res
=>
{
this
.
$message
.
sucess
(
'新建试卷成功'
)
})
})
}
else
{
setTimeout
(()
=>
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论