fix:修改添加考试试卷选择提交后未清空问题

This commit is contained in:
wuyx
2022-12-20 10:51:59 +08:00
parent e1e0622296
commit b9bfcd6a8c
2 changed files with 1531 additions and 1603 deletions

View File

@@ -1,21 +1,12 @@
<template>
<a-drawer
:visible="addonlineVisible"
class="drawerStyle addonlineDrawer"
width="80%"
title="添加在线"
placement="right"
@after-visible-change="afterVisibleChange"
>
<a-drawer :visible="addonlineVisible" class="drawerStyle addonlineDrawer" width="80%" title="添加在线" placement="right"
@after-visible-change="afterVisibleChange">
<div class="drawerMain">
<div class="header">
<div v-if="edit" class="headerTitle">编辑在线</div>
<div v-else class="headerTitle">添加在线</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer" />
</div>
<div class="contentMain">
<div class="main_items">
@@ -23,17 +14,12 @@
<div class="mii_ipt">
<div class="ipt_name"></div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="
<a-input v-model:value="inputV1" style="
width: 280px;
height: 40px;
border-radius: 8px;
padding-right: 49px;
"
placeholder="请输入课程名称"
maxlength="20"
/>
" placeholder="请输入课程名称" maxlength="20" />
<div class="inp_num" style="position: absolute; right: 7px">
<span style="color: #c7cbd2">
@@ -93,37 +79,23 @@
<!-- 编辑的表格 -->
<div>
<div>
<a-table
class="ant-table-striped"
:row-class-name="
<a-table class="ant-table-striped" :row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="{
" :row-selection="{
type: 'radio',
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
}" :columns="tableDataFunc()" :data-source="tableData" :loading="tableDataTotal === -1 ? true : false"
:pagination="false" />
<div class="tableBox" style="margin-top:85px;">
<div class="pa">
<a-pagination
v-if="tableDataTotal > 10"
:showSizeChanger="false"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
<a-pagination v-if="tableDataTotal > 10" :showSizeChanger="false" showQuickJumper="true"
hideOnSinglePage="true" :pageSize="pageSize" :current="currentPage" :total="tableDataTotal"
class="pagination" @change="handelChangePage" />
</div>
</div>
</div>
</div>
</div></div>
<!-- <div v-else>
<a-table
class="ant-table-striped"
@@ -607,7 +579,7 @@ export default {
IsExistenceProjectTemplate({
courseTaskId: p_data_id,
projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0,
templateStageId: props.chooseStageId || 0,
type: 1,
}).then((res) => {
console.log("项目中是否包含此在线课了", res);
@@ -700,6 +672,7 @@ export default {
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addonlineDrawer {
.drawerMain {
.header {
@@ -709,6 +682,7 @@ export default {
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -717,31 +691,38 @@ export default {
margin-left: 24px;
}
}
.contentMain {
padding-right: 12px;
.main_items {
display: flex;
margin-top: 32px;
margin-bottom: 12px;
flex-wrap: wrap;
.mi_ipts {
display: flex;
margin-bottom: 20px;
.mii_ipt {
display: flex;
align-items: center;
margin-right: 24px;
.ipt_name {
white-space: nowrap;
}
}
}
.mi_btns {
display: flex;
margin-left: 38px;
margin-bottom: 20px;
cursor: pointer;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
@@ -752,9 +733,11 @@ export default {
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
@@ -762,48 +745,61 @@ export default {
margin-left: 5px;
}
}
.btn1 {
background: rgb(64, 158, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: rgb(255, 255, 255);
}
}
.btn2 {
background: rgb(255, 255, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png");
}
.btnText {
color: rgb(64, 158, 255);
}
}
.btn1:hover {
background: rgb(255, 255, 255);
.search {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #4ea6ff;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.main_notice {
display: flex;
justify-content: space-between;
@@ -811,9 +807,11 @@ export default {
margin-bottom: 3px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {
display: flex;
align-items: center;
.notice_icon {
width: 14px;
height: 14px;
@@ -823,32 +821,38 @@ export default {
background-size: 100% 100%;
}
}
.mntc_right {
cursor: pointer;
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead>tr>th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
@@ -859,6 +863,7 @@ export default {
}
}
}
.main_btns {
height: 72px;
width: 100%;
@@ -868,6 +873,7 @@ export default {
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
@@ -877,6 +883,7 @@ export default {
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;

View File

@@ -1,19 +1,11 @@
<template>
<a-drawer
:visible="addtestVisible"
class="drawerStyle addtestDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<a-drawer :visible="addtestVisible" class="drawerStyle addtestDrawer" width="80%" placement="right"
@after-visible-change="afterVisibleChange">
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}考试</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer2"
/>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer2" />
</div>
<!-- 2022-11-30注释 后面放开 修改div的padding-topL:32 -->
<div style="display: flex; flex-direction: row; padding-top: 0px">
@@ -39,30 +31,20 @@
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">考试名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="test.examinationName"
style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入考试名称"
:maxlength="20"
/>
<a-input v-model:value="test.examinationName" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入考试名称" :maxlength="20" />
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">选择试卷</span>
</div>
@@ -80,11 +62,8 @@
</div>
<!-- 选择面授侧弹窗 -->
<div>
<sel-facet
v-model:selfacetVisible="selfacetvisible"
v-model:chooseCourse="chooseCourse"
v-model:chooseCourseName="chooseCourseName"
/>
<sel-facet v-model:selfacetVisible="selfacetvisible" v-model:chooseCourse="chooseCourse"
v-model:chooseCourseName="chooseCourseName" />
</div>
<!-- 选择面授侧弹窗 -->
</div>
@@ -92,41 +71,25 @@
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">考试时间</span>
</div>
<div class="btnbox">
<a-range-picker
style="width: 400px; height: 40px; border-radius: 8px"
show-time
format="YYYY/MM/DD HH:mm"
v-model:value="test.chooseTime"
:placeholder="[' 开始时间', ' 结束时间']"
/>
<a-range-picker style="width: 400px; height: 40px; border-radius: 8px" show-time format="YYYY/MM/DD HH:mm"
v-model:value="test.chooseTime" :placeholder="[' 开始时间', ' 结束时间']" />
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">考试时长</span>
</div>
<div class="select">
<a-input-number
:min="0"
:max="300"
:precision="0"
style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="test.examinationDuration"
></a-input-number>
<a-input-number :min="0" :max="300" :precision="0" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="test.examinationDuration"></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
@@ -135,14 +98,8 @@
<span style="margin-right: 3px">考试说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="test.examinationExplain"
placeholder="请输入考试说明"
allow-clear
show-count
:maxlength="200"
:rows="6"
/>
<a-textarea v-model:value="test.examinationExplain" placeholder="请输入考试说明" allow-clear show-count
:maxlength="200" :rows="6" />
</div>
</div>
<div class="main_item2">
@@ -153,21 +110,13 @@
<div class="setbox">
<div class="timerbox">
<span>允许重复考试</span>
<a-input-number
:min="-1"
:max="300"
:precision="0"
style="
<a-input-number :min="-1" :max="300" :precision="0" style="
width: 100px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="test.examinationLimit"
></a-input-number>
<span style="color: #999999; margin-left: 8px"
>,-1表示无限制</span
>
" v-model:value="test.examinationLimit"></a-input-number>
<span style="color: #999999; margin-left: 8px">,-1表示无限制</span>
</div>
</div>
</div>
@@ -178,15 +127,10 @@
<span style="margin-right: 3px">显示答案</span>
</div>
<div class="btnbox">
<a-radio-group
style="margin-right: 12px"
v-model:value="test.showAnswers"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>允许查看
<a-radio-group style="margin-right: 12px" v-model:value="test.showAnswers">
<a-radio v-model:checked="checked" :value="1" @click="cloradio1">允许查看
</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>不允许查看
<a-radio v-model:checked="checked" :value="2" @click="cloradio1">不允许查看
</a-radio>
</a-radio-group>
</div>
@@ -196,15 +140,10 @@
<span style="margin-right: 3px">显示解析</span>
</div>
<div class="btnbox">
<a-radio-group
style="margin-right: 12px"
v-model:value="test.showAnalysis"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio2"
>允许查看
<a-radio-group style="margin-right: 12px" v-model:value="test.showAnalysis">
<a-radio v-model:checked="checked" :value="1" @click="cloradio2">允许查看
</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio2"
>不允许查看
<a-radio v-model:checked="checked" :value="2" @click="cloradio2">不允许查看
</a-radio>
</a-radio-group>
</div>
@@ -214,15 +153,10 @@
<span style="margin-right: 3px">评分模式</span>
</div>
<div class="btnbox">
<a-radio-group
style="margin-right: 12px"
v-model:value="test.scoringModel"
>
<a-radio v-model:checked="checked" :value="1" @click="cloradio3"
>最高一次
<a-radio-group style="margin-right: 12px" v-model:value="test.scoringModel">
<a-radio v-model:checked="checked" :value="1" @click="cloradio3">最高一次
</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio3"
>最后一次
<a-radio v-model:checked="checked" :value="2" @click="cloradio3">最后一次
</a-radio>
</a-radio-group>
</div>
@@ -232,11 +166,8 @@
<span style="margin-right: 3px">及格线</span>
</div>
<div class="btnbox">
<a-input
v-model:value="test.passLine"
type="number"
style="width: 400px; height: 40px; border-radius: 8px"
/>
<a-input v-model:value="test.passLine" type="number"
style="width: 400px; height: 40px; border-radius: 8px" />
<span style="color: #999999; margin-left: 8px"></span>
</div>
@@ -247,33 +178,14 @@
<span style="margin-right: 3px">试题排列</span>
</div>
<div class="btnbox">
<a-radio-group
style="margin-right: 12px"
v-model:value="test.questionArrangement"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio4"
>试题乱序
<a-radio-group style="margin-right: 12px" v-model:value="test.questionArrangement">
<a-radio v-model:checked="checked" :value="1" @click="cloradio4">试题乱序
</a-radio>
<a-radio
v-model:checked="checked"
:value="2"
@click="cloradio4"
>选项乱序
<a-radio v-model:checked="checked" :value="2" @click="cloradio4">选项乱序
</a-radio>
<a-radio
v-model:checked="checked"
:value="3"
@click="cloradio4"
>全部乱序
<a-radio v-model:checked="checked" :value="3" @click="cloradio4">全部乱序
</a-radio>
<a-radio
v-model:checked="checked"
:value="4"
@click="cloradio4"
>不乱序
<a-radio v-model:checked="checked" :value="4" @click="cloradio4">不乱序
</a-radio>
</a-radio-group>
</div>
@@ -415,6 +327,7 @@ export default {
clearAll();
};
const closeDrawer2 = () => {
state.paperName = "";
state.statechoosedTime = "";
ctx.emit("update:edit", false);
ctx.emit("update:addtestVisible", false);
@@ -522,7 +435,7 @@ export default {
state.EditTestId = res.data.data.examinationId;
if (props.faceLevel) {
state.EditTestId = res.data.data.examinationId;
state.paperName = "";
closeDrawer();
} else {
if (props.isLevel == 1) {
@@ -544,7 +457,7 @@ export default {
console.log("props.edit", props.edit);
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
state.paperName = "";
closeDrawer();
})
.catch(() => {
@@ -565,6 +478,7 @@ export default {
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
state.paperName = "";
closeDrawer();
})
.catch(() => {
@@ -583,6 +497,7 @@ export default {
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}任务成功`);
ctx.emit("changeData", false);
state.paperName = "";
closeDrawer();
})
.catch(() => {
@@ -826,28 +741,33 @@ export default {
}
}
}
.main_table {
position: relative;
padding-bottom: 80px;
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
padding-left: 5px !important;
}
.ant-table-thead>tr>th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
background: #f6f9fd;
}
.pa {
left: 0;
width: 100%;
@@ -857,6 +777,7 @@ export default {
bottom: 20px;
}
}
.main_btns {
height: 72px;
width: 100%;