From 154891cce3b3cce34c300a225a7a14e5a8893cf5 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 08 七月 2024 17:52:18 +0800 Subject: [PATCH] 部门调动使用级联下拉 --- src/views/exam/paper/edit.vue | 43 ++++++++++++++++++++++++++++++++----------- 1 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue index 6816708..a269634 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> @@ -102,8 +109,8 @@ </el-form> <el-dialog :visible.sync="questionPage.showDialog" width="70%"> <el-form :model="questionPage.queryParam" ref="queryForm" :inline="true"> - <el-form-item label="ID锛�"> - <el-input v-model="questionPage.queryParam.id" clearable></el-input> + <el-form-item label="棰樺共锛�"> + <el-input v-model="questionPage.queryParam.titleContent" clearable></el-input> </el-form-item> <el-form-item label="棰樺瀷锛�"> <el-select v-model="questionPage.queryParam.questionType" clearable> @@ -143,9 +150,15 @@ </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 + 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> @@ -171,6 +184,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'; @@ -248,7 +262,7 @@ multipleSelection: [], showDialog: false, queryParam: { - id: null, + titleContent: "", questionType: null, subjectId: 1, pageIndex: 1, @@ -292,6 +306,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; -- Gitblit v1.8.0