Commit fbd877c9 by H.wb.wang.peixun

页面开发

parent 81769c0d
...@@ -8,11 +8,18 @@ export function listQuestionBank(query) { ...@@ -8,11 +8,18 @@ export function listQuestionBank(query) {
params: query params: query
}) })
} }
// 查询题库主列表
export function questionType(query) {
return request({
url: '/school-paper/question-type/list',
method: 'get',
params: query
})
}
// 查询题库主详细 // 查询题库主详细
export function getQuestionBank(id) { export function getQuestionBank(id) {
return request({ return request({
url: '/school-paper/questionBank/' + id, url: '/school-paper/questionBank/detail/' + id,
method: 'get' method: 'get'
}) })
} }
...@@ -20,7 +27,7 @@ export function getQuestionBank(id) { ...@@ -20,7 +27,7 @@ export function getQuestionBank(id) {
// 新增题库主 // 新增题库主
export function addQuestionBank(data) { export function addQuestionBank(data) {
return request({ return request({
url: '/school-paper/questionBank', url: '/school-paper/questionBank/question',
method: 'post', method: 'post',
data: data data: data
}) })
...@@ -29,7 +36,7 @@ export function addQuestionBank(data) { ...@@ -29,7 +36,7 @@ export function addQuestionBank(data) {
// 修改题库主 // 修改题库主
export function updateQuestionBank(data) { export function updateQuestionBank(data) {
return request({ return request({
url: '/school-paper/questionBank', url: '/school-paper/questionBank/question',
method: 'put', method: 'put',
data: data data: data
}) })
......
...@@ -78,7 +78,7 @@ export default { ...@@ -78,7 +78,7 @@ export default {
dialogVisible: false, dialogVisible: false,
hideUpload: false, hideUpload: false,
baseUrl: process.env.VUE_APP_BASE_API, baseUrl: process.env.VUE_APP_BASE_API,
uploadImgUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 上传的图片服务器地址 uploadImgUrl: process.env.VUE_APP_BASE_API + "/school-paper/banner/uploadFile", // 上传的图片服务器地址
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标题" prop="bannerTitle"> <el-form-item label="标题" prop="bannerTitle">
<el-input <el-input
v-model="queryParams.bannerTitle" v-model="queryParams.bannerTitle"
...@@ -21,20 +21,13 @@ ...@@ -21,20 +21,13 @@
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form> -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" size="mini" @click="handleAdd" v-hasPermi="['school-paper:banner:add']">新增轮播</el-button>
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['school-paper:banner:add']"
>新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
...@@ -66,43 +59,39 @@ ...@@ -66,43 +59,39 @@
v-hasPermi="['school-paper:banner:export']" v-hasPermi="['school-paper:banner:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row> </el-row>
<el-table v-loading="loading" :data="bannerList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="bannerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="主键id" align="center" prop="id" v-if="true"/> <!-- <el-table-column label="主键id" align="center" prop="id" v-if="true"/> -->
<el-table-column label="标题" align="center" prop="bannerTitle" /> <el-table-column label="轮播图标题" prop="bannerTitle" />
<el-table-column label="图片地址" align="center" prop="url" /> <el-table-column label="轮播图" prop="url">
<el-table-column label="备注" align="center" prop="remark" /> <template slot-scope="scope">
<el-table-column label="状态:0正常,1删除" align="center" prop="status" /> <el-image style="width: 100px; height: 100px" :src="scope.url" :preview-src-list="scope.url">
</el-image>
</template>
</el-table-column>
<el-table-column label="是否启用" prop="remark">
<template slot-scope="scope">
<el-switch v-model="scope.remark" active-color="#13ce66" inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<!-- <el-table-column label="状态:0正常,1删除" align="center" prop="status" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['school-paper:banner:edit']">编辑</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
icon="el-icon-edit" v-hasPermi="['school-paper:banner:remove']">删除</el-button>
@click="handleUpdate(scope.row)"
v-hasPermi="['school-paper:banner:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['school-paper:banner:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total>0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改轮播图对话框 --> <!-- 添加或修改轮播图对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
...@@ -110,16 +99,13 @@ ...@@ -110,16 +99,13 @@
<el-form-item label="标题" prop="bannerTitle"> <el-form-item label="标题" prop="bannerTitle">
<el-input v-model="form.bannerTitle" placeholder="请输入标题" /> <el-input v-model="form.bannerTitle" placeholder="请输入标题" />
</el-form-item> </el-form-item>
<el-form-item label="图片地址" prop="url"> <el-form-item label="上传" prop="url">
<el-input v-model="form.url" placeholder="请输入图片地址" /> <imageUpload :limit="1" v-model="form.url" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
...@@ -228,7 +214,7 @@ export default { ...@@ -228,7 +214,7 @@ export default {
// 多选框选中数据 // 多选框选中数据
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.single = selection.length!==1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="题库类别" prop="categoryId"> <el-form-item label="题库类别" prop="categoryId">
<el-select <el-select clearable v-model="queryParams.categoryId" placeholder="请选择题库类别" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="queryParams.categoryId"
placeholder="请选择题库类别"
@change="handleQuery"
>
<el-option
v-for="item in [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '集合', value: '1' }, { label: '集合', value: '1' },
{ label: '不等式', value: '2' }, { label: '不等式', value: '2' },
{ label: '函数', value: '3' }, { label: '函数', value: '3' },
{ label: '数列', value: '4' }, { label: '数列', value: '4' },
{ label: '立体几何', value: '5' }, { label: '立体几何', value: '5' },
]" ]" :key="item.value" :label="item.label" :value="item.value">
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="习题种类:" prop="species"> <el-form-item label="习题种类:" prop="species">
<!-- 1填空,2选择,3解答 --> <!-- 1填空,2选择,3解答 -->
<el-select <el-select clearable v-model="queryParams.species" placeholder="请选择习题种类" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="queryParams.species"
placeholder="请选择习题种类"
@change="handleQuery"
>
<el-option
v-for="item in [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '填空', value: '1' }, { label: '填空', value: '1' },
{ label: '选择', value: '2' }, { label: '选择', value: '2' },
{ label: '解答', value: '3' }, { label: '解答', value: '3' },
]" ]" :key="item.value" :label="item.label" :value="item.value">
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="阶段" prop="phaseId"> <el-form-item label="阶段" prop="phaseId">
<el-select <el-select clearable v-model="queryParams.phaseId" placeholder="请选择阶段" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="queryParams.phaseId"
placeholder="请选择阶段"
@change="handleQuery"
>
<el-option
v-for="item in [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '高一', value: '1' }, { label: '高一', value: '1' },
{ label: '高二', value: '2' }, { label: '高二', value: '2' },
{ label: '高三', value: '3' }, { label: '高三', value: '3' },
]" ]" :key="item.value" :label="item.label" :value="item.value">
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-select <el-select clearable v-model="queryParams.type" placeholder="请选择类型" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="queryParams.type"
placeholder="请选择类型"
@change="handleQuery"
>
<el-option
v-for="item in [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '典例精讲', value: '1' }, { label: '典例精讲', value: '1' },
]" ]" :key="item.value" :label="item.label" :value="item.value">
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="强度分类:" prop="intensity"> <el-form-item label="强度分类:" prop="intensity">
<!-- 1基础,2中等,3提高 --> <!-- 1基础,2中等,3提高 -->
<el-select <el-select clearable v-model="queryParams.intensity" placeholder="请选择强度" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="queryParams.intensity"
placeholder="请选择强度"
@change="handleQuery"
>
<el-option
v-for="item in [
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '基础', value: '1' }, { label: '基础', value: '1' },
{ label: '中等', value: '2' }, { label: '中等', value: '2' },
{ label: '提高', value: '3' }, { label: '提高', value: '3' },
]" ]" :key="item.value" :label="item.label" :value="item.value">
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -156,30 +99,15 @@ ...@@ -156,30 +99,15 @@
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['school-paper:questionBank:add']">新增题目</el-button>
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['school-paper:questionBank:add']"
>新增题目</el-button
>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
...@@ -216,27 +144,15 @@ ...@@ -216,27 +144,15 @@
>导出</el-button >导出</el-button
> >
</el-col> --> </el-col> -->
<right-toolbar <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<div class="app-container-list"> <div class="app-container-list">
<div <div class="app-container-list-item" v-for="(item, index) in questionBankList" :key="index">
class="app-container-list-item" <div class="app-container-list-item-title">{{ item.species | filterTypea }}</div>
v-for="(item, index) in 10" <div class="app-container-list-item-html" v-html="item.topic"></div>
:key="index"
>
<div class="app-container-list-item-title">选择题</div>
<div
class="app-container-list-item-html"
v-html="
`<p>1.集合A中有m个元素,若A中增加一个元素,则它的.子集个数将增加( )个.集合A中有m个元素,若A中增加一个元素,则它的.子集个数将增加( )个.集合A中有m个元素,若A中增加一个元素,则它的.子集个数将增加( )个.集合A中有m个元素,若A中增加一个元素,则它的.子集个数将增加( )个.集合A中有m个元素,若A中增加一个元素,则它的.子集个数将增加( )个.</p>`
"
></div>
<div class="app-container-list-item-footer"> <div class="app-container-list-item-footer">
<el-button icon="el-icon-edit-outline">编辑</el-button> <el-button icon="el-icon-edit-outline" @click="handleUpdate(item)">编辑</el-button>
<el-button icon="el-icon-delete">删除</el-button> <el-button icon="el-icon-delete">删除</el-button>
</div> </div>
</div> </div>
...@@ -302,208 +218,101 @@ ...@@ -302,208 +218,101 @@
</el-table-column> </el-table-column>
</el-table> --> </el-table> -->
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改题库主对话框 --> <!-- 添加或修改题库主对话框 -->
<template v-if="open"> <template v-if="open">
<el-dialog <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body destroy-on-close>
:title="title" <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="top"
:visible.sync="open" class="app-container-form">
width="70%"
append-to-body
destroy-on-close
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
label-position="top"
class="app-container-form"
>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="题库类别" prop="categoryId"> <el-form-item label="题库类别:" prop="categoryId">
<el-select <el-select clearable v-model="form.categoryId" placeholder="请选择题库类别">
clearable <el-option v-for="item in category" :key="item.id" :label="item.remark" :value="item.id">
v-model="form.categoryId"
placeholder="请选择题库类别"
>
<el-option
v-for="item in [
{ label: '集合', value: '1' },
{ label: '不等式', value: '2' },
{ label: '函数', value: '3' },
{ label: '数列', value: '4' },
{ label: '立体几何', value: '5' },
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="年级阶段" prop="phaseId"> <el-form-item label="年级阶段:" prop="phaseId">
<el-select <el-select clearable v-model="form.phaseId" placeholder="请选择阶段" @change="handleQuery">
clearable <el-option v-for="item in [
v-model="form.phaseId" { label: '高一', value: 1 },
placeholder="请选择阶段" { label: '高二', value: 2 },
@change="handleQuery" { label: '高三', value: 3 },
> ]" :key="item.value" :label="item.label" :value="item.value">
<el-option
v-for="item in [
{ label: '高一', value: '1' },
{ label: '高二', value: '2' },
{ label: '高三', value: '3' },
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="强度分类:" prop="intensity"> <el-form-item label="强度分类:" prop="intensity">
<!-- 1基础,2中等,3提高 --> <!-- 1基础,2中等,3提高 -->
<el-select <el-select clearable v-model="form.intensity" placeholder="请选择强度">
clearable <el-option v-for="item in [
v-model="form.intensity" { label: '基础', id: 1 },
placeholder="请选择强度" { label: '中等', id: 2 },
> { label: '提高', id: 3 },
<el-option ]" :key="item.id" :label="item.label" :value="item.id">
v-for="item in [
{ label: '基础', value: '1' },
{ label: '中等', value: '2' },
{ label: '提高', value: '3' },
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="习题种类:" prop="species"> <el-form-item label="习题种类:" prop="species">
<!-- 1填空,2选择,3解答 --> <!-- 1填空,2选择,3解答 -->
<el-select <el-select clearable v-model="form.species" placeholder="请选择习题种类" @change="changeSpecies">
clearable <el-option v-for="item in [
v-model="form.species" { label: '填空', value: 1 },
placeholder="请选择习题种类" { label: '选择', value: 2 },
@change="changeSpecies" { label: '解答', value: 3 },
> ]" :key="item.value" :label="item.label" :value="item.value">
<el-option
v-for="item in [
{ label: '填空', value: '1' },
{ label: '选择', value: '2' },
{ label: '解答', value: '3' },
]"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
<el-form-item label="题目" prop="topic"> <el-form-item label="题目" prop="topic">
<editor <editor v-model="form.topic" :min-height="192" :iconType="['image']" />
v-model="form.topic"
:min-height="192"
:iconType="['image']"
/>
</el-form-item> </el-form-item>
<template v-if="[1, '1', 3, '3'].includes(form.species)"> <template v-if="[1, '1', 3, '3'].includes(form.species)">
<el-form-item label="答案" prop="answer"> <el-form-item label="答案" prop="answer">
<editor <editor v-model="form.answer" :min-height="192" :iconType="['image']" />
v-model="form.answer"
:min-height="192"
:iconType="['image']"
/>
</el-form-item> </el-form-item>
<el-form-item label="答案图片" prop="rightAnswersPic"> <el-form-item label="答案图片" prop="rightAnswersPic">
<imageUpload :limit="9" v-model="form.rightAnswersPic" /> <imageUpload :limit="9" v-model="form.rightAnswersPic" />
</el-form-item> </el-form-item>
</template> </template>
<template v-if="[2, '2'].includes(form.species)"> <template v-if="[2, '2'].includes(form.species)">
<el-form-item label="选项" prop="checkList"> <el-form-item label="选项" prop="options">
<div class="app-container-form-check"> <div class="app-container-form-check">
<i <i class="el-icon-circle-plus-outline app-container-form-check-add"
class="el-icon-circle-plus-outline app-container-form-check-add" v-if="!form.options || !form.options.length" @click="clickAddCheckList"></i>
v-if="!form.checkList || !form.checkList.length" <div v-for="(item, index) in form.options" :key="index" class="app-container-form-check-item">
@click="clickAddCheckList"
></i>
<div
v-for="(item, index) in form.checkList"
:key="index"
class="app-container-form-check-item"
>
<span class="app-container-form-check-item-type">{{ <span class="app-container-form-check-item-type">{{
index | filterType(form.checkList) index | filterType(form.options)
}}</span }}</span><i v-if="index + 1 === form.options.length"
><i
v-if="index + 1 === form.checkList.length"
class="el-icon-circle-plus-outline app-container-form-check-item-add" class="el-icon-circle-plus-outline app-container-form-check-item-add"
@click="clickCheckItemAdd(index)" @click="clickCheckItemAdd(index)"></i>
></i> <i class="el-icon-remove-outline app-container-form-check-item-del" v-else
<i @click="clickCheckItemDel(index)"></i>
class="el-icon-remove-outline app-container-form-check-item-del" <editor v-model="item.optionContent" :min-height="192" :iconType="['image']" />
v-else
@click="clickCheckItemDel(index)"
></i>
<editor
v-model="item.html"
:min-height="192"
:iconType="['image']"
/>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="标准答案" prop="rightAnswers" v-if="form.options && form.options.length">
label="标准答案" <el-radio-group v-model="form.rightAnswers" @change='changeRadio'>
prop="rightAnswers" <el-radio :label="index" v-for="(item, index) in form.options" :key="index">{{ index |
v-if="form.checkList && form.checkList.length" filterType(form.options) }}</el-radio>
>
<el-radio-group v-model="form.rightAnswers">
<el-radio
:label="index"
v-for="(item, index) in form.checkList"
:key="index"
>{{ index | filterType(form.checkList) }}</el-radio
>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="典例精讲" prop="explain"> <el-form-item label="典例精讲" prop="type">
<el-switch <el-switch @change="changeExplain" v-model="form.type" active-color="#409eff">
@change="changeExplain"
v-model="form.explain"
active-color="#409eff"
>
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<template v-if="form.explain"> <template v-if="form.type">
<el-form-item label="解答过程" prop="resolveCourse"> <el-form-item label="解答过程" prop="resolveCourse">
<editor <editor v-model="form.resolveCourse" :min-height="192" :iconType="['image']" />
v-model="form.resolveCourse"
:min-height="192"
:iconType="['image']"
/>
</el-form-item> </el-form-item>
<el-form-item label="解答视频" prop="resolveVideo"> <el-form-item label="解答视频" prop="resolveVideo">
<fileUpload <fileUpload v-model="form.resolveVideo" :limit="1" :fileSize="1024" :fileType="['mp4', 'mp3']" />
v-model="form.resolveVideo"
:limit="1"
:fileSize="1024"
:fileType="['mp4', 'mp3']"
/>
</el-form-item> </el-form-item>
</template> </template>
</el-col> </el-col>
...@@ -513,9 +322,7 @@ ...@@ -513,9 +322,7 @@
</el-form-item> --> </el-form-item> -->
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm" <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -530,12 +337,14 @@ import { ...@@ -530,12 +337,14 @@ import {
delQuestionBank, delQuestionBank,
addQuestionBank, addQuestionBank,
updateQuestionBank, updateQuestionBank,
questionType
} from "@/api/school-paper/questionBank"; } from "@/api/school-paper/questionBank";
export default { export default {
name: "QuestionBank", name: "QuestionBank",
data() { data() {
return { return {
category: [], // 题库类别
// 按钮loading // 按钮loading
buttonLoading: false, buttonLoading: false,
// 遮罩层 // 遮罩层
...@@ -614,9 +423,20 @@ export default { ...@@ -614,9 +423,20 @@ export default {
return val; return val;
} }
}, },
filterTypea(val, list) {
switch (val) {
case 1:
return '填空'
case 2:
return '选择'
case 3:
return '解答'
}
},
}, },
created() { created() {
this.getList(); this.getList();
this.questionType()
}, },
methods: { methods: {
changeExplain(e) { changeExplain(e) {
...@@ -652,7 +472,7 @@ export default { ...@@ -652,7 +472,7 @@ export default {
self.$refs.form.clearValidate(); self.$refs.form.clearValidate();
self.initleRules(); self.initleRules();
self.isSpec(e); self.isSpec(e);
self.isExplan(self.form.explain); self.isExplan(self.form.type);
}, },
isSpec(val) { isSpec(val) {
let self = this; let self = this;
...@@ -674,7 +494,7 @@ export default { ...@@ -674,7 +494,7 @@ export default {
]); ]);
break; break;
case 2: case 2:
self.$set(self.rules, "checkList", [ self.$set(self.rules, "options", [
{ {
required: true, required: true,
message: "选项不能为空", message: "选项不能为空",
...@@ -741,6 +561,13 @@ export default { ...@@ -741,6 +561,13 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
//题库类别
questionType() {
questionType({ pageSize: 9999, pageNum: 1 }).then((res) => {
this.category = res.rows
// console.log(res,'this.questionBankList======')
})
},
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
...@@ -767,15 +594,14 @@ export default { ...@@ -767,15 +594,14 @@ export default {
updateTime: undefined, updateTime: undefined,
createBy: undefined, createBy: undefined,
updateBy: undefined, updateBy: undefined,
checkList: [], options: [],
explain: false,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
clickAddCheckList() { clickAddCheckList() {
if (this.form.checkList && !this.form.checkList.length) { if (this.form.options && !this.form.options.length) {
this.form.checkList.unshift({ this.form.options.unshift({
html: "", optionContent: "",
}); });
} }
}, },
...@@ -783,16 +609,16 @@ export default { ...@@ -783,16 +609,16 @@ export default {
let self = this, let self = this,
isKong = false; isKong = false;
if (index < 25) { if (index < 25) {
self.form.checkList.forEach((item, ik) => { self.form.options.forEach((item, ik) => {
if (self.IsEmptyStr(self.getWangEditorText(item.html + "") + "")) { if (self.IsEmptyStr(self.getWangEditorText(item.optionContent + "") + "")) {
isKong = true; isKong = true;
} }
}); });
if (isKong) { if (isKong) {
self.$message.warning("请填写选项内容"); self.$message.warning("请填写选项内容");
} else { } else {
self.form.checkList.push({ self.form.options.push({
html: "", optionContent: "",
}); });
} }
} else { } else {
...@@ -808,9 +634,9 @@ export default { ...@@ -808,9 +634,9 @@ export default {
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
self.$delete(this.form.checkList, index); self.$delete(this.form.options, index);
}) })
.catch(() => {}); .catch(() => { });
}, },
// 判断字符串是否为空 // 判断字符串是否为空
IsEmptyStr(str) { IsEmptyStr(str) {
...@@ -852,6 +678,35 @@ export default { ...@@ -852,6 +678,35 @@ export default {
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
let self = this
let arr = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
];
this.loading = true; this.loading = true;
this.reset(); this.reset();
const id = row.id || this.ids; const id = row.id || this.ids;
...@@ -859,6 +714,25 @@ export default { ...@@ -859,6 +714,25 @@ export default {
this.loading = false; this.loading = false;
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
// 判断是否是填空题
if (self.form.species == 1) {
self.form.answer = self.form.rightAnswers
}
// 判断是否是解答题
if (self.form.species == 3) {
self.form.answer = self.form.rightAnswers
}
if (this.form.type == 1) {
self.form.type = true
} else {
self.form.type = false
}
arr.filter((item, index) => {
if (item == response.data.rightAnswers) {
self.form.rightAnswers = index
}
})
// console.log(this.form.rightAnswers, "========newArrnewArrnewArr");
this.title = "修改题库主"; this.title = "修改题库主";
}); });
}, },
...@@ -885,20 +759,72 @@ export default { ...@@ -885,20 +759,72 @@ export default {
submitForm() { submitForm() {
let self = this, let self = this,
isKong = false; isKong = false;
let arr = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
];
// 判断是否是选择提
if (self.form.species == 2) {
self.form.options.forEach((item, index) => {
let row = {
...item,
optionTag: arr[index]
}
self.$set(self.form.options, index, row)
})
}
this.form.rightAnswers = arr[this.form.rightAnswers]
// 判断是否是填空题
if (self.form.species == 1) {
self.form.rightAnswers = self.form.answer
}
// 判断是否是解答题
if (self.form.species == 3) {
self.form.rightAnswers = self.form.answer
}
if (self.form.type == true) {
self.form.type = 1
} else {
self.form.type = 0
}
self.isEditor("topic"); self.isEditor("topic");
if (self.form.checkList && self.form.checkList.length) { if (self.form.options && self.form.options.length) {
self.form.checkList.forEach((item, ik) => { self.form.options.forEach((item, ik) => {
console.log(item.html); console.log(item.optionContent);
if (self.IsEmptyStr(self.getWangEditorText(item.html + "") + "")) { if (self.IsEmptyStr(self.getWangEditorText(item.optionContent + "") + "")) {
isKong = true; isKong = true;
} }
}); });
if (isKong) { if (isKong) {
self.$message.warning("请填写选项内容"); self.$message.warning("请填写选项内容");
self.$refs.form.validateField("checkList"); self.$refs.form.validateField("options");
} }
} }
if (self.form.explain) { if (self.form.type) {
self.isEditor("resolveCourse"); self.isEditor("resolveCourse");
} }
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
...@@ -943,7 +869,7 @@ export default { ...@@ -943,7 +869,7 @@ export default {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}) })
.catch(() => {}) .catch(() => { })
.finally(() => { .finally(() => {
this.loading = false; this.loading = false;
}); });
...@@ -968,17 +894,21 @@ export default { ...@@ -968,17 +894,21 @@ export default {
padding: 20px 40px; padding: 20px 40px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; // justify-content: space-between;
&-item { &-item {
padding: 15px 20px; padding: 15px 20px;
width: calc(33% - 40px); width: calc(33% - 40px);
border-radius: 5px; border-radius: 5px;
background-color: #f1efef; background-color: #f1efef;
margin-bottom: 20px; margin-bottom: 20px;
margin-right: 10px;
&-title { &-title {
font-size: 18px; font-size: 18px;
margin-bottom: 10px; margin-bottom: 10px;
} }
&-html { &-html {
font-size: 16px; font-size: 16px;
margin-bottom: 20px; margin-bottom: 20px;
...@@ -986,37 +916,46 @@ export default { ...@@ -986,37 +916,46 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 3; /* 超出几行省略 */ -webkit-line-clamp: 3;
/* 超出几行省略 */
overflow: hidden; overflow: hidden;
} }
&-footer { &-footer {
display: flex; display: flex;
justify-content: right; justify-content: right;
button { button {
background: transparent; background: transparent;
border: none; border: none;
} }
button::after { button::after {
border: none; border: none;
} }
} }
} }
&-item:last-child {
margin-bottom: 0px; // &-item:last-child {
} // margin-bottom: 0px;
// }
} }
&-form { &-form {
height: 60vh; height: 60vh;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
&-check { &-check {
&-add { &-add {
font-size: 30px; font-size: 30px;
color: #409eff; color: #409eff;
cursor: pointer; cursor: pointer;
} }
&-item { &-item {
margin-bottom: 12px; margin-bottom: 12px;
&-type { &-type {
display: inline-block; display: inline-block;
padding: 8px 15px; padding: 8px 15px;
...@@ -1026,18 +965,22 @@ export default { ...@@ -1026,18 +965,22 @@ export default {
border-radius: 5px; border-radius: 5px;
margin: 0px 12px 15px 0px; margin: 0px 12px 15px 0px;
} }
&-add, &-add,
&-del { &-del {
font-size: 25px; font-size: 25px;
cursor: pointer; cursor: pointer;
} }
&-add { &-add {
color: #409eff; color: #409eff;
} }
&-del { &-del {
color: #f56c6c; color: #f56c6c;
} }
} }
&-item:last-child { &-item:last-child {
margin-bottom: 0rpx; margin-bottom: 0rpx;
} }
......
...@@ -35,8 +35,8 @@ module.exports = { ...@@ -35,8 +35,8 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: `https://farming.nyinhong.com/api`, // target: `https://farming.nyinhong.com/api`,
// target: `http://127.0.0.1:8111`, target: `http://192.168.0.195:8111/`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment