Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-qa
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-qa
Commits
ef3294c3
提交
ef3294c3
authored
2月 23, 2022
作者:
lihuihui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
8e0e35ab
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
169 行增加
和
52 行删除
+169
-52
api.js
src/modules/question/api.js
+7
-1
CaseChidren.vue
src/modules/question/components/CaseChidren.vue
+69
-0
Detail.vue
src/modules/question/components/Detail.vue
+56
-38
QTypeCase.vue
src/modules/question/components/QTypeCase.vue
+7
-3
Create.vue
src/modules/question/views/Create.vue
+13
-6
List.vue
src/modules/question/views/List.vue
+8
-3
vite.config.js
vite.config.js
+9
-1
没有找到文件。
src/modules/question/api.js
浏览文件 @
ef3294c3
...
...
@@ -4,7 +4,13 @@ import httpRequest from '@/utils/axios'
* 获取应用列表
*/
export
function
getAppList
(
params
)
{
return
httpRequest
.
get
(
'/api/permissions/admin/v1/applications'
,
{
params
})
return
httpRequest
.
get
(
'/qbs/admin/v1/questions'
,
{
params
})
}
/**
* 获取题目分类树形结构
*/
export
function
getQuestionCategory
(
params
)
{
return
httpRequest
.
get
(
`/qbs/admin/v1/question-category/tree/
${
params
}
`
)
}
/**
* 获取应用详情
...
...
src/modules/question/components/CaseChidren.vue
0 → 100644
浏览文件 @
ef3294c3
<
template
>
<div>
<!--
<el-divider
content-position=
"center"
class=
"divider"
>
子题目1
</el-divider>
-->
<el-form
:model=
"ruleForm"
:ruleForm=
"ruleForm"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"子题目类型"
prop=
"desc"
>
<el-select
v-model=
"ruleForm.desc"
placeholder=
"请选择活动区域"
>
<el-option
label=
"单选题"
value=
"questionType1"
></el-option>
<el-option
label=
"多选题"
value=
"questionType2"
></el-option>
<el-option
label=
"判断题"
value=
"questionType3"
></el-option>
<el-option
label=
"问答题"
value=
"questionType4"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"难度等级"
prop=
"desc"
>
<el-select
v-model=
"ruleForm.desc"
placeholder=
"请选择活动区域"
>
<el-option
label=
"单选题"
value=
"questionType1"
></el-option>
<el-option
label=
"多选题"
value=
"questionType2"
></el-option>
<el-option
label=
"判断题"
value=
"questionType3"
></el-option>
<el-option
label=
"问答题"
value=
"questionType4"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"子题目标题"
prop=
"data2"
>
<el-input
v-model=
"ruleForm.data2"
></el-input>
</el-form-item>
<el-form-item
label=
"子题目内容"
prop=
"data2"
>
<v-editor></v-editor>
</el-form-item>
<el-form-item
label=
"选项"
>
<radio></radio>
<!--
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
立即创建
</el-button>
-->
<!--
<el-button
@
click=
"resetForm('ruleForm')"
>
重置
</el-button>
-->
</el-form-item>
<el-form-item
label=
"知识点/标签"
>
<el-input
v-model=
"ruleForm.data2"
></el-input>
</el-form-item>
<el-form-item
label=
"子题目解析"
prop=
"data2"
>
<v-editor></v-editor>
</el-form-item>
<el-form-item
label=
"试题分类"
prop=
"desc"
>
<el-select
v-model=
"ruleForm.desc"
placeholder=
"请选择活动区域"
>
<el-option
label=
"单选题"
value=
"questionType1"
></el-option>
<el-option
label=
"多选题"
value=
"questionType2"
></el-option>
<el-option
label=
"判断题"
value=
"questionType3"
></el-option>
<el-option
label=
"问答题"
value=
"questionType4"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
保存子题目
</el-button>
<el-button
type=
"primary"
@
click=
"resetForm('ruleForm')"
>
删除子题目
</el-button>
<!--
<el-input
v-model=
"ruleForm.data2"
></el-input>
-->
</el-form-item>
</el-form>
</div>
</
template
>
<
script
>
import
Radio
from
'./QTypeRadio.vue'
import
VEditor
from
'@/components/tinymce/Index.vue'
export
default
{
components
:
{
VEditor
,
Radio
},
data
()
{
return
{
ruleForm
:
{}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
src/modules/question/components/Detail.vue
浏览文件 @
ef3294c3
<
template
>
<div>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"题目类型"
prop=
"
nam
e"
>
<el-form-item
label=
"题目类型"
prop=
"
question_typ
e"
>
<!--
<el-input
v-model=
"ruleForm.name"
></el-input>
-->
<el-select
v-model=
"ruleForm.name"
placeholder=
"请选择活动区域"
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
<el-select
v-model=
"ruleForm.question_type"
placeholder=
"请选择活题目类型"
@
change=
"changeQuestionType"
>
<el-option
v-for=
"(item, index) in qType"
:label=
"item.label"
:value=
"item.value"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"难度等级"
prop=
"region"
>
<el-select
v-model=
"ruleForm.region"
placeholder=
"请选择活动区域"
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
<el-form-item
label=
"难度等级"
prop=
"question_difficulty"
>
<el-select
v-model=
"ruleForm.question_difficulty"
placeholder=
"请选择活难度等级"
>
<el-option
label=
"易"
value=
"1"
></el-option>
<el-option
label=
"中"
value=
"2"
></el-option>
<el-option
label=
"难"
value=
"3"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"题目标题"
required
>
<el-input
v-model=
"ruleForm.
data1
"
></el-input>
<el-form-item
label=
"题目标题"
prop=
"question_title"
>
<el-input
v-model=
"ruleForm.
question_title
"
></el-input>
</el-form-item>
<el-form-item
label=
"题干内容"
prop=
"
delivery
"
required
>
<v-editor></v-editor>
<el-form-item
label=
"题干内容"
prop=
"
question_content
"
required
>
<v-editor
v-model=
"ruleForm.question_content"
></v-editor>
</el-form-item>
<el-form-item
label=
"选项"
prop=
"delivery"
required
>
<slot></slot>
<!-- 单选题 -->
<radio
v-if=
"ruleForm.question_type == 1"
></radio>
<!-- 多选题 -->
<checkbox
v-if=
"ruleForm.question_type == 2"
></checkbox>
<!-- 判断题 -->
<judgment
v-if=
"ruleForm.question_type == 6"
></judgment>
</el-form-item>
<el-form-item
label=
"标签"
prop=
"type"
>
<el-input
v-model=
"ruleForm.type"
></el-input>
</el-form-item>
<el-form-item
label=
"题目解析"
prop=
"
resource
"
>
<v-editor></v-editor>
<el-form-item
label=
"题目解析"
prop=
"
question_analysis
"
>
<v-editor
v-model=
"ruleForm.question_analysis"
></v-editor>
</el-form-item>
<el-form-item
label=
"试题分类"
prop=
"
desc
"
>
<el-select
v-model=
"ruleForm.
desc"
placeholder=
"请选择活动区域
"
>
<el-form-item
label=
"试题分类"
prop=
"
question_category
"
>
<el-select
v-model=
"ruleForm.
question_category"
placeholder=
"请选择试题分类
"
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"知识点"
prop=
"
data2
"
>
<el-input
v-model=
"ruleForm.
data2
"
></el-input>
<el-form-item
label=
"知识点"
prop=
"
knowledge_point
"
>
<el-input
v-model=
"ruleForm.
knowledge_point
"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
立即创建
</el-button>
...
...
@@ -47,31 +52,41 @@
</
template
>
<
script
>
import
VEditor
from
'@/components/tinymce/Index.vue'
import
Radio
from
'../components/QTypeRadio.vue'
import
Checkbox
from
'../components/QTypeCheckbox.vue'
import
Judgment
from
'../components/QTypeJudgment.vue'
export
default
{
components
:
{
VEditor
},
components
:
{
VEditor
,
Radio
,
Checkbox
,
Judgment
},
data
()
{
return
{
ruleForm
:
{
name
:
''
,
region
:
''
,
date1
:
''
,
date2
:
''
,
delivery
:
false
,
type
:
[],
resource
:
''
,
desc
:
''
project_prefix
:
'x1'
,
question_type
:
1
,
question_difficulty
:
''
,
question_title
:
''
,
question_content
:
''
,
question_options
:
[],
question_analysis
:
''
,
question_category
:
''
,
knowledge_point
:
''
},
rules
:
{
name
:
[
{
required
:
true
,
message
:
'请输入活动名称'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
5
,
message
:
'长度在 3 到 5 个字符'
,
trigger
:
'blur'
}
qType
:
[
{
label
:
'单选题'
,
value
:
1
},
{
label
:
'多选题'
,
value
:
2
},
{
label
:
'简答题'
,
value
:
3
},
{
label
:
'案例题'
,
value
:
5
},
{
label
:
'判断题'
,
value
:
6
},
{
label
:
'实操题'
,
value
:
7
},
{
label
:
'情景题'
,
value
:
8
}
],
region
:
[{
required
:
true
,
message
:
'请选择活动区域'
,
trigger
:
'change'
}],
date1
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择日期'
,
trigger
:
'change'
}],
date2
:
[{
type
:
'date'
,
required
:
true
,
message
:
'请选择时间'
,
trigger
:
'change'
}],
type
:
[{
type
:
'array'
,
required
:
true
,
message
:
'请至少选择一个活动性质'
,
trigger
:
'change'
}],
resource
:
[{
required
:
true
,
message
:
'请选择活动资源'
,
trigger
:
'change'
}],
desc
:
[{
required
:
true
,
message
:
'请填写活动形式'
,
trigger
:
'blur'
}]
rules
:
{
question_type
:
[{
required
:
true
,
message
:
'请选择'
,
trigger
:
'change'
}],
question_difficulty
:
[{
required
:
true
,
message
:
'请选择难度等级'
,
trigger
:
'change'
}],
question_title
:
[{
required
:
true
,
message
:
'请填写题目标题'
,
trigger
:
'blur'
}],
question_content
:
[{
required
:
true
,
message
:
'请填写题干内容'
,
trigger
:
'blur'
}],
question_analysis
:
[{
required
:
true
,
message
:
'请填写题干内容'
,
trigger
:
'blur'
}],
question_category
:
[{
required
:
true
,
message
:
'请选择试题分类'
,
trigger
:
'change'
}],
knowledge_point
:
[{
required
:
true
,
message
:
'请输入题目知识点内容'
,
trigger
:
'blur'
}]
}
}
},
...
...
@@ -88,6 +103,9 @@ export default {
},
resetForm
(
formName
)
{
this
.
$refs
[
formName
].
resetFields
()
},
changeQuestionType
()
{
console
.
log
(
this
.
ruleForm
.
question_type
)
}
}
}
...
...
src/modules/question/components/QTypeCase.vue
浏览文件 @
ef3294c3
<
template
>
<div>
<el-form
:model=
"ruleForm"
:rule
s=
"rules
"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form
:model=
"ruleForm"
:rule
Form=
"ruleForm
"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"题目类型"
prop=
"desc"
>
<el-select
v-model=
"ruleForm.desc"
placeholder=
"请选择活动区域"
>
<el-option
label=
"单选题"
value=
"questionType1"
></el-option>
...
...
@@ -16,15 +16,19 @@
<v-editor></v-editor>
</el-form-item>
<el-form-item>
<
!--
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
立即创建
</el-button>
--
>
<
!--
<el-button
@
click=
"resetForm('ruleForm')"
>
重置
</el-button>
--
>
<
el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
添加子题目
</el-button
>
<
el-button
type=
"primary"
@
click=
"resetForm('ruleForm')"
>
删除子题目
</el-button
>
</el-form-item>
</el-form>
<case-chidren></case-chidren>
</div>
</
template
>
<
script
>
import
CaseChidren
from
'./CaseChidren.vue'
import
VEditor
from
'@/components/tinymce/Index.vue'
export
default
{
components
:
{
VEditor
,
CaseChidren
},
data
()
{
return
{
ruleForm
:
{}
...
...
src/modules/question/views/Create.vue
浏览文件 @
ef3294c3
<
template
>
<app-card>
<!--
<detail>
</detail>
-->
<radio></radio>
<detail>
<!-- 单选题 -->
<!--
<radio></radio>
-->
<!-- 多选题 -->
<!--
<checkbox></checkbox>
-->
<!-- 判断题 -->
<!--
<judgment></judgment>
-->
</detail>
<!--
<v-editor></v-editor>
-->
</app-card>
</
template
>
<
script
>
//
import Detail from '../components/Detail.vue'
import
Detail
from
'../components/Detail.vue'
// import VEditor from '@/components/tinymce/Index.vue'
import
Radio
from
'../components/QTypeCase.vue'
// import Radio from '../components/QTypeRadio.vue'
// import Checkbox from '../components/QTypeCheckbox.vue'
// import Judgment from '../components/QTypeJudgment.vue'
export
default
{
components
:
{
Radio
}
components
:
{
Detail
}
}
</
script
>
...
...
src/modules/question/views/List.vue
浏览文件 @
ef3294c3
...
...
@@ -7,7 +7,9 @@
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"visible = true"
>
批量删除
</el-button>
</
template
>
-->
<div
class=
"operate-btn"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"$router.push({ path: '/question/create' })"
>
新建试题
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"$router.push({ path: '/question/create' })"
>
新建试题
</el-button
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"visible = true"
>
批量导入试题
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"visible = true"
>
批量删除
</el-button>
</div>
...
...
@@ -21,7 +23,7 @@
</template>
<
script
>
import
{
getAppList
}
from
'../api'
import
{
getAppList
,
getQuestionCategory
}
from
'../api'
export
default
{
data
()
{
...
...
@@ -73,6 +75,9 @@ export default {
}
}
},
mounted
()
{
getQuestionCategory
(
'x1'
).
then
()
},
methods
:
{
// 创建成功刷新列表
handleCreateSuccess
()
{
...
...
@@ -91,7 +96,7 @@ export default {
</
script
>
<
style
lang=
"scss"
>
.operate-btn
{
.operate-btn
{
display
:
flex
;
padding-bottom
:
10px
;
}
...
...
vite.config.js
浏览文件 @
ef3294c3
...
...
@@ -20,8 +20,16 @@ export default defineConfig({
key
:
fs
.
readFileSync
(
path
.
join
(
__dirname
,
'./https/dev.ezijing.com.key'
)),
cert
:
fs
.
readFileSync
(
path
.
join
(
__dirname
,
'./https/dev.ezijing.com.pem'
))
},
// proxy: {
// '/api': 'https://app.ezijing.com'
// }
proxy
:
{
'/api'
:
'https://app.ezijing.com'
'/api'
:
'https://app.ezijing.com'
,
'/qbs'
:
{
target
:
'https://question-api.ezijing.com'
,
changeOrigin
:
true
,
rewrite
:
path
=>
path
.
replace
(
/^
\/
qbs/
,
''
)
}
}
},
resolve
:
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论