From 6dc02bb0fc34273f64c273efbce1e9ceb6460c3d Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 17 五月 2024 15:26:50 +0800
Subject: [PATCH] feat:创建试卷时新增选择用户查询条件
---
src/views/user/departmentExamine/list.vue | 3 +
src/views/exam/paper/edit.vue | 92 ++++++++++++++++++++++++++++++++++++---------
src/api/examPaper.js | 1
3 files changed, 76 insertions(+), 20 deletions(-)
diff --git a/src/api/examPaper.js b/src/api/examPaper.js
index a0a2a2e..476f9b4 100644
--- a/src/api/examPaper.js
+++ b/src/api/examPaper.js
@@ -15,4 +15,5 @@
selfPaList: query => post('/api/admin/exam/count/list', query),
mathList: query => post('/api/admin/exam/count/sourceList', query),
uploadEnrolmentsa: query => down('/api/admin/exam/count/exportTemplatesSheet/'+query),
+ selectStudent: query => post('/api/admin/exam/paper/selectStudent', query),
}
diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue
index b6542b6..ab7d623 100644
--- a/src/views/exam/paper/edit.vue
+++ b/src/views/exam/paper/edit.vue
@@ -2,8 +2,7 @@
<div class="app-container">
<el-form :model="form" ref="form" label-width="200px" v-loading="formLoading" :rules="rules">
<el-form-item label="鑰冪敓锛�" prop="menuIds" required>
- <el-cascader v-model="form.menuIds" :options="options" :props="props" @change="handleChange" clearable collapse-tags>
- </el-cascader>
+ <el-select v-model="form.menuIds" :collapse-tags="true" multiple placeholder="璇烽�夋嫨" @focus="selectStudent"></el-select>
</el-form-item>
<el-form-item label="璇剧洰锛�" prop="subjectId" required>
<el-select ref="subjectIdRef" v-model="form.subjectId" placeholder="璇剧洰" multiple
@@ -124,6 +123,35 @@
<el-button type="primary" @click="confirmQuestionSelect">纭畾</el-button>
</span>
</el-dialog>
+
+ <el-dialog :visible.sync="studentDialog" width="70%">
+ <el-form :model="student" ref="queryForm" :inline="true">
+ <el-form-item label="鏍囩锛�">
+ <el-select v-model="student.tagId" clearable>
+ <el-option v-for="item in tags" :key="item.id" :value="item.id" :label="item.name"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="閮ㄩ棬锛�">
+ <el-select v-model="student.deptId" clearable>
+ <el-option v-for="item in depts" :key="item.id" :value="item.id" :label="item.name"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="selectStudent">鏌ヨ</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table v-loading="student.listLoading" :data="tableData" border fit highlight-current-row style="width: 100%" @selection-change="handleSelection">
+ <el-table-column type="selection"></el-table-column>
+ <el-table-column prop="realName" label="鐢ㄦ埛"/>
+ </el-table>
+ <pagination v-show="total > 0" :total="total"
+ :page.sync="student.pageIndex" :limit.sync="student.pageSize"
+ @pagination="selectStudent"/>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="studentDialog = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmStudentSelect">纭畾</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
@@ -135,26 +163,26 @@
import examPaperApi from '@/api/examPaper'
import questionApi from '@/api/question'
import departmentApi from '@/api/department'
+import userApi from '@/api/user'
export default {
components: { Pagination, QuestionShow },
data () {
return {
+ tags: [],
depts: [],
+ student: {},
+ studentDialog: false,
+ student: {
+ pageIndex: 1,
+ pageSize: 100,
+ listLoading: true,
+ multipleSelection: []
+ },
+ tableData: [],
+ total: 0,
props: {
multiple: true
- // lazy: true,
- // lazyLoad (node, resolve) {
- // console.log(node,"node");
- // var that = this;
- // departmentApi.selectUser(node.value).then(re=>{
- // console.log(re,"re");
- // const nodes = re.response.map(xxx=>{
- // return {value: xxx.id,label: xxx.realName,leaf: node.level >= 1}
- // });
- // resolve(nodes);
- // })
- // }
},
options: [],
departCascaderProps:{
@@ -162,6 +190,7 @@
},
subjectIdList:[],
form: {
+ menuIds: [],
aggregateSource:100,
id: null,
departmentIds: [],
@@ -239,6 +268,20 @@
})
},
methods: {
+ getTags () {
+ userApi.tagList(null).then(data => {
+ this.tags = data.response
+ })
+ },
+ selectStudent() {
+ this.getTags();
+ this.studentDialog = true;
+ examPaperApi.selectStudent(this.student).then(res => {
+ this.tableData = res.response.list
+ this.total = res.response.total
+ this.student.listLoading = false
+ })
+ },
handleChange(val){
console.log(val)
},
@@ -317,12 +360,12 @@
if (this.subjectIdList.length == 1){
this.form.subjectId= this.form.subjectId
};
- let op = [];
- for(var ele of this.form.menuIds){
- op.push(ele[1])
- };
+ // let op = [];
+ // for(var ele of this.form.menuIds){
+ // op.push(ele[1])
+ // };
+ this.form.userIds = this.form.menuIds;
this.form.menuIds = JSON.stringify(this.form.menuIds);
- this.form.userIds = op;
console.log("laks",this.form)
if(this.form.questionTypeVMS == null){
this.form.questionTypeVMS = [];
@@ -378,6 +421,14 @@
})
this.questionPage.showDialog = false
},
+ confirmStudentSelect () {
+ this.student.multipleSelection.forEach(q => {
+ if(this.form.menuIds.some(obj => obj !== q.id)) {
+ this.form.menuIds.push(q.id)
+ }
+ })
+ this.studentDialog = false
+ },
levelChange () {
// this.form.subjectId = null
// this.subjectFilter = this.subjects.filter(data =>{
@@ -412,6 +463,9 @@
handleSelectionChange (val) {
this.questionPage.multipleSelection = val
},
+ handleSelection (val) {
+ this.student.multipleSelection = val
+ },
questionTypeFormatter (row, column, cellValue, index) {
return this.enumFormat(this.questionTypeEnum, cellValue)
},
diff --git a/src/views/user/departmentExamine/list.vue b/src/views/user/departmentExamine/list.vue
index 6ed189c..0dc4938 100644
--- a/src/views/user/departmentExamine/list.vue
+++ b/src/views/user/departmentExamine/list.vue
@@ -15,11 +15,12 @@
<el-table-column prop="userName" label="鐢ㄦ埛鍚�" />
<el-table-column prop="departmentName" label="閮ㄩ棬鍚嶇О" />
<el-table-column prop="nowDepartmentName" label="鍘熼儴闂ㄥ悕绉�" />
- <el-table-column prop="result" label="瀹℃牳缁撴灉">
+ <el-table-column prop="result" label="瀹℃牳缁撴灉" width="90px" align="center">
<template slot-scope="{row}">
<el-tag :type="row.result === '瀹℃牳閫氳繃' ? 'success' : row.result === '瀹℃牳椹冲洖' ? 'danger' : 'info'">{{row.result}}</el-tag>
</template>
</el-table-column>
+ <el-table-column prop="remark" label="瀹℃牳鎰忚" show-overflow-tooltip />
<el-table-column prop="createUserName" label="鍒涘缓浜�" />
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px" />
<el-table-column label="鎿嶄綔" align="center">
--
Gitblit v1.8.0