This commit is contained in:
2025-07-16 16:01:22 +08:00
parent 601e17e255
commit 4ebfcdd6d2
5 changed files with 54 additions and 78 deletions

View File

@ -68,6 +68,7 @@
<el-radio-group v-model="postForm.examType"> <el-radio-group v-model="postForm.examType">
<el-radio :label="1">模拟考试</el-radio> <el-radio :label="1">模拟考试</el-radio>
<el-radio :label="2">正式考试</el-radio> <el-radio :label="2">正式考试</el-radio>
<el-radio :label="3">补考</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="总分数" prop="totalScore"> <el-form-item label="总分数" prop="totalScore">
@ -87,7 +88,7 @@
</el-form-item> </el-form-item>
<el-form-item v-if="postForm.timeLimit" label="考试日期" required> <el-form-item v-if="postForm.timeLimit" label="考试日期" required>
<el-date-picker v-model="dateValues" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="daterange" <el-date-picker v-model="dateValues" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="daterange"
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" /> range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" />
</el-form-item> </el-form-item>
<el-form-item v-if="postForm.timeLimit" label="考试时间" required> <el-form-item v-if="postForm.timeLimit" label="考试时间" required>
<el-time-picker is-range v-model="timeValues" range-separator="" start-placeholder="开始时间" <el-time-picker is-range v-model="timeValues" range-separator="" start-placeholder="开始时间"
@ -127,14 +128,20 @@ export default {
components: { RepoSelect }, components: { RepoSelect },
data() { data() {
return { return {
pickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7; //
//return time.getTime() < Date.now() - 8.64e6; //
}
},
treeData: [], treeData: [],
defaultProps: { defaultProps: {
label: 'deptName' label: 'deptName'
}, },
filterText: '', filterText: '',
treeLoading: false, treeLoading: false,
dateValues: [], dateValues: ["", ""],
timeValues: [], timeValues: ["", ""],
// //
repoList: [], repoList: [],
// //
@ -195,6 +202,14 @@ export default {
} }
}, },
watch: { watch: {
timeValues(newVal) {
if (newVal && newVal.length === 2 && newVal[0] === '00:00' && newVal[1] === '00:00') {
// 00:00
this.$nextTick(() => {
this.timeValues = [];
});
}
},
filterText(val) { filterText(val) {
this.$refs.tree.filter(val) this.$refs.tree.filter(val)
}, },
@ -237,9 +252,8 @@ export default {
} }
}, },
created() { created() {
const id = this.$route.params.id if (this.$route.params.id) {
if (typeof id !== undefined) { this.fetchData(this.$route.params.id)
this.fetchData(id)
} }
fetchTree({}).then(response => { fetchTree({}).then(response => {
this.treeData = response.data this.treeData = response.data

View File

@ -17,8 +17,9 @@
<el-table-column label="考试名称" prop="title" /> <el-table-column label="考试名称" prop="title" />
<el-table-column label="考试类型" align="center"> <el-table-column label="考试类型" align="center">
<template v-slot="scope"> <template v-slot="scope">
{{ scope.row.examType == 1 ? '模拟考试' : '' }} <el-tag v-if="scope.row.examType == 1" type="info">模拟考试</el-tag>
{{ scope.row.examType == 2 ? '正式考试' : '' }} <el-tag v-if="scope.row.examType == 2">正式考试</el-tag>
<el-tag v-if="scope.row.examType == 3" type="warning">补考</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="开放类型" align="center"> <el-table-column label="开放类型" align="center">

View File

@ -16,9 +16,9 @@
@click.native.prevent="accountLogin">登录</el-button> @click.native.prevent="accountLogin">登录</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="display: flex; align-items: center; justify-content: flex-end"> <!-- <div style="display: flex; align-items: center; justify-content: flex-end">
<el-link type="primary" href="/#/register">立即注册</el-link> <el-link type="primary" href="/#/register">立即注册</el-link>
</div> </div> -->
</div> </div>
</template> </template>

View File

@ -33,13 +33,13 @@
/> />
<el-table-column <el-table-column
label="是否通过" label="是否及格"
align="center" align="center"
> >
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.passed" style="color: #00ff00;">通过</span> <span v-if="scope.row.passed" style="color: #00ff00;">及格</span>
<span v-else style="color: #ff0000;">未通过</span> <span v-else style="color: #ff0000;">不及格</span>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -1,80 +1,43 @@
<template> <template>
<div> <div>
<data-table <data-table ref="pagingTable" :options="options" :list-query="listQuery">
ref="pagingTable"
:options="options"
:list-query="listQuery"
>
<template #filter-content> <template #filter-content>
<el-input v-model="listQuery.params.title" placeholder="搜索考试名称" style="width: 200px;" class="filter-item" /> <el-input v-model="listQuery.params.title" placeholder="搜索考试名称" style="width: 200px;" class="filter-item" />
</template> </template>
<template #data-columns> <template #data-columns>
<el-table-column label="考试名称" prop="title" show-overflow-tooltip />
<el-table-column <el-table-column label="考试次数" prop="tryCount" align="center" />
label="考试名称" <el-table-column label="考试类型" prop="examType" align="center">
prop="title"
show-overflow-tooltip
/>
<el-table-column
label="考试次数"
prop="tryCount"
align="center"
/>
<el-table-column
label="最高分"
prop="maxScore"
align="center"
/>
<el-table-column
label="是否通过"
align="center"
>
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.passed" style="color: #00ff00;">通过</span> <el-tag v-if="scope.row.examType == 1" type="info">模拟考试</el-tag>
<span v-else style="color: #ff0000;">未通过</span> <el-tag v-if="scope.row.examType == 2">正式考试</el-tag>
<el-tag v-if="scope.row.examType == 3" type="warning">补考</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="最高分" prop="maxScore" align="center" />
<el-table-column <el-table-column label="是否及格" align="center">
label="最后考试时间"
prop="updateTime"
align="center"
/>
<el-table-column
label="操作"
align="center"
>
<template v-slot="scope"> <template v-slot="scope">
<el-button type="primary" size="mini" icon="el-icon-view" @click="handleExamDetail(scope.row.examId)">详情</el-button> <el-tag v-if="scope.row.passed" type="success">及格</el-tag>
<el-button type="warning" size="mini" icon="el-icon-close" @click="handlerExamBook(scope.row.examId)">错题</el-button> <el-tag v-else type="danger">不及格</el-tag>
</template>
</el-table-column>
<el-table-column label="最后考试时间" prop="updateTime" align="center" />
<el-table-column label="操作" align="center">
<template v-slot="scope">
<el-button type="primary" size="mini" icon="el-icon-view"
@click="handleExamDetail(scope.row.examId)">详情</el-button>
<el-button type="warning" size="mini" icon="el-icon-close"
@click="handlerExamBook(scope.row.examId)">错题</el-button>
</template> </template>
</el-table-column> </el-table-column>
</template> </template>
</data-table> </data-table>
<el-dialog :visible.sync="dialogVisible" title="考试明细" width="60%"> <el-dialog :visible.sync="dialogVisible" title="考试明细" width="60%">
<div class="el-dialog-div"> <div class="el-dialog-div">
<my-paper-list :exam-id="examId" :user-id="userId" /> <my-paper-list :exam-id="examId" :user-id="userId" />
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
@ -121,18 +84,16 @@ export default {
}, },
handlerExamBook(examId) { handlerExamBook(examId) {
this.$router.push({ name: 'BookList', params: { examId: examId }}) this.$router.push({ name: 'BookList', params: { examId: examId } })
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.el-dialog-div {
.el-dialog-div{
height: 60vh; height: 60vh;
overflow: auto; overflow: auto;
padding: 10px; padding: 10px;
} }
</style> </style>