From 0ebcc1fd3b16b7a43e85a9a4bde1a1cee3ae5831 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 16 七月 2024 17:47:10 +0800 Subject: [PATCH] feat:出生年月取消必填、隐藏模拟菜单 --- src/views/exam/paper/edit.vue | 69 +++++++++++++++++++++++++++++----- 1 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue index 78865e2..09df0c0 100644 --- a/src/views/exam/paper/edit.vue +++ b/src/views/exam/paper/edit.vue @@ -8,14 +8,21 @@ :key="item.id"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select ref="subjectIdRef" v-model="form.subjectId" placeholder="璇剧洰" multiple collapse-tags> - <el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name + ' '"></el-option> - </el-select> - </el-form-item> <el-form-item label="閮ㄩ棬锛�" prop="deptId" required> - <el-select v-model="form.deptId" collapse-tags placeholder="閮ㄩ棬"> + <!-- <el-select v-model="form.deptId" collapse-tags @change="getSubject" placeholder="閮ㄩ棬"> <el-option v-for="item in depts" :key="item.id" :value="item.id" :label="item.name"></el-option> + </el-select> --> + <el-cascader + clearable + @change="getSubject" + v-model="form.deptId" + :options="depts" + :props="{ emitPath: false, value: 'id', label: 'name', checkStrictly: true }" + ></el-cascader> + </el-form-item> + <el-form-item label="璇剧洰锛�" prop="subjectId" required> + <el-select ref="subjectIdRef" v-model="form.subjectId" :disabled="! form.deptId" placeholder="璇剧洰" multiple collapse-tags> + <el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name + ' '"></el-option> </el-select> </el-form-item> <el-form-item label="璇曞嵎绫诲瀷锛�" prop="paperType" required> @@ -143,14 +150,22 @@ </el-select> </el-form-item> <el-form-item label="閮ㄩ棬锛�"> - <el-select v-model="student.deptIds" clearable multiple> + <!-- <el-select v-model="student.deptIds" clearable multiple> <el-option v-for="item in depts" :key="item.id" :value="item.id" :label="item.name"></el-option> - </el-select> + </el-select> --> + <el-cascader + clearable + collapse-tags + v-model="student.deptIds" + :options="depts" + :props="{ emitPath: false, multiple: true, value: 'id', label: 'name', checkStrictly: true }" + ></el-cascader> </el-form-item> <el-form-item> <el-button type="primary" @click="selectStudent">鏌ヨ</el-button> </el-form-item> </el-form> + <el-button type="primary" @click="selectAllBoolean ? selectAll() : unselectAll()">{{ selectAllBoolean ? '鍏ㄩ��' : '鍙栨秷鍏ㄩ��' }}</el-button> <el-table ref="multipleTable" v-loading="student.listLoading" :data="tableData" border fit highlight-current-row style="width: 100%" @selection-change="handleSelection" row-key="id"> <el-table-column type="selection" :reserve-selection="true"></el-table-column> @@ -171,6 +186,7 @@ import { mapGetters, mapState, mapActions } from 'vuex'; import Pagination from '@/components/Pagination'; import QuestionShow from '../question/components/Show'; +import subjectApi from '@/api/subject'; import examPaperApi from '@/api/examPaper'; import questionApi from '@/api/question'; import departmentApi from '@/api/department'; @@ -180,6 +196,7 @@ components: { Pagination, QuestionShow }, data() { return { + selectAllBoolean: true, tags: [], depts: [], studentDialog: false, @@ -206,6 +223,7 @@ }, subjectIdList: [], form: { + deptId: '', menuIds: [], aggregateSource: 100, id: null, @@ -216,7 +234,10 @@ limitDateTime: [], name: '', suggestTime: null, - titleItems: [], + titleItems: [{ + name: '', + questionItems: [] + }], subjectSource: {}, questionTypeVMS: [], examineeList: [], @@ -262,12 +283,18 @@ }; }, created() { + // departmentApi.getCurrentDeptId().then(res => { + // if (res.response && res.response[0]) { + // this.form.deptId = res.response[0]; + // } + // }); let id = this.$route.query.id; let _this = this; this.initSubject(function () { _this.subjectFilter = _this.subjects; }); if (id && parseInt(id) !== 0) { + _this.selectAllBoolean = false; _this.formLoading = true; examPaperApi.select(id).then(re => { const { userIds, userNames } = re.response; @@ -292,6 +319,13 @@ }); }, methods: { + getSubject(deptId) { + // 鑾峰彇瀵瑰簲閮ㄩ棬鐨勮鐩� + subjectApi.selectByDeptId(deptId).then(res => { + this.form.subjectId = null + this.subjectFilter = res.response + }) + }, getTags() { userApi.tagList(null).then(data => { this.tags = data.response; @@ -303,7 +337,22 @@ this.student.listLoading = true; this.getStudent(); }, - + selectAll () { + let param = { ...this.student }; + param.pageSize = 999999; + examPaperApi.selectStudent(param).then(res => { + this.handleSelection(res.response.list); + res.response.list.forEach(item => { + this.$refs.multipleTable.toggleRowSelection(item, true); + this.selectAllBoolean = false; + }) + this.getStudent(); + }); + }, + unselectAll () { + this.$refs.multipleTable.clearSelection(); + this.selectAllBoolean = true; + }, getStudent() { this.student.listLoading = true; examPaperApi.selectStudent(this.student).then(res => { -- Gitblit v1.8.0