From 4e43f5b3a19db9af5015e0200c9590c8aba3b9ed Mon Sep 17 00:00:00 2001 From: odc.xiaohui <xiaohui@Q1> Date: 星期四, 15 六月 2023 13:37:45 +0800 Subject: [PATCH] 修改试卷列表 --- src/views/exam/paper/edit.vue | 94 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 80 insertions(+), 14 deletions(-) diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue index f59d599..29e8a43 100644 --- a/src/views/exam/paper/edit.vue +++ b/src/views/exam/paper/edit.vue @@ -1,20 +1,22 @@ <template> <div class="app-container"> - <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> - <el-form-item label="閮ㄩ棬锛�" prop="level" required> - <el-select v-model="form.level" placeholder="閮ㄩ棬" @change="levelChange"> + <el-form :model="form" ref="form" label-width="200px" v-loading="formLoading" :rules="rules"> + <el-form-item label="閮ㄩ棬锛�" prop="departmentIds" required> + <el-select v-model="form.departmentIds" placeholder="閮ㄩ棬" @change="levelChange" multiple + collapse-tags> <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> </el-select> </el-form-item> <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰"> + <el-select ref="subjectIdRef" v-model="form.subjectId" placeholder="璇剧洰" multiple + collapse-tags @visible-change="subjectIdEvent" > <el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name+' ( '+item.levelName+' )'"></el-option> </el-select> </el-form-item> <el-form-item label="璇曞嵎绫诲瀷锛�" prop="paperType" required> - <el-select v-model="form.paperType" placeholder="璇曞嵎绫诲瀷"> - <el-option v-for="item in paperTypeEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-select v-model="form.paperType" placeholder="璇曞嵎绫诲瀷" > + <el-option v-for="item in paperTypeEnum" :key="item.key" :value="item.key" :label="item.value" ></el-option> </el-select> </el-form-item> <el-form-item label="鏃堕棿闄愬埗锛�" required v-show="form.paperType===4"> @@ -25,13 +27,33 @@ <el-form-item label="璇曞嵎鍚嶇О锛�" prop="name" required> <el-input v-model="form.name"/> </el-form-item> + <el-form-item :key="index" :label="titleItem.label+':'" required v-for="(titleItem,index) in subjectIdList" v-if="form.paperType ==7"> + <el-row> + <el-col :span="3"> + <span>棰樼洰鏁伴噺锛�</span> + </el-col> + <el-col :span="9"> + <el-input v-model="titleItem.name" style="width: 80%"/> + </el-col> + <el-col :span="3"> + <span>棰樼洰鍒嗘暟锛�</span> + </el-col> + <el-col :span="9"> + <el-input v-model="titleItem.name" style="width: 80%"/> + </el-col> + </el-row> + + </el-form-item> + <el-form-item label="鎬绘暟鍒嗭細" v-if="form.paperType==7" prop="name" required> + <el-input v-model="form.name"/> + </el-form-item> <el-form-item :key="index" :label="'鏍囬'+(index+1)+'锛�'" required v-for="(titleItem,index) in form.titleItems"> <el-input v-model="titleItem.name" style="width: 80%"/> - <el-button type="text" class="link-left" style="margin-left: 20px" size="mini" @click="addQuestion(titleItem)"> + <el-button v-if="form.paperType!=7" type="text" class="link-left" style="margin-left: 20px" size="mini" @click="addQuestion(titleItem)"> 娣诲姞棰樼洰 </el-button> <el-button type="text" class="link-left" size="mini" @click="form.titleItems.splice(index,1)">鍒犻櫎</el-button> - <el-card class="exampaper-item-box" v-if="titleItem.questionItems.length!==0"> + <el-card class="exampaper-item-box" v-if="titleItem.questionItems.length!==0&&subjectIdList.length<2"> <el-form-item :key="questionIndex" :label="'棰樼洰'+(questionIndex+1)+'锛�'" v-for="(questionItem,questionIndex) in titleItem.questionItems" style="margin-bottom: 15px"> <el-row> @@ -99,10 +121,11 @@ components: { Pagination, QuestionShow }, data () { return { + subjectIdList:[], form: { id: null, - level: null, - subjectId: null, + departmentIds: [], + subjectId: [], paperType: 1, limitDateTime: [], name: '', @@ -112,7 +135,7 @@ subjectFilter: null, formLoading: false, rules: { - level: [ + departmentIds: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], subjectId: [ @@ -160,11 +183,39 @@ } }, methods: { + subjectIdEvent(e){ + console.log(e,this.$refs.subjectIdRef.selected) + let arr=[] + if (e){ + + }else { + this.$refs.subjectIdRef.selected.forEach(item=>{ + arr.push({ + label:item.label, + id:item.value + }) + }) + console.log(arr) + } + + if (arr.length>1){ + //瑾槑鏄毃姗� + this.subjectIdList = arr + // this.form.paperType = 7 + this.form.titleItems = [] + }else { + this.subjectIdList = [] + this.form.paperType = 1 + } + }, submitForm () { let _this = this this.$refs.form.validate((valid) => { if (valid) { this.formLoading = true + if (this.subjectIdList.length=1){ + this.form.subjectId= this.form.subjectId + } examPaperApi.edit(this.form).then(re => { if (re.code === 1) { _this.$message.success(re.message) @@ -215,10 +266,25 @@ }, levelChange () { this.form.subjectId = null - this.subjectFilter = this.subjects.filter(data => data.level === this.form.level) + // this.subjectFilter = this.subjects.filter(data =>{ + // return this.form.departmentIds.forEach(item=>{data.level == item}) + // }) + this.subjectFilter = [] + this.form.departmentIds.forEach(item=>{ + this.subjects.forEach(jectitem=>{ + if (item==jectitem.level){ + this.subjectFilter.push(jectitem) + } + }) + }) + console.log(this.subjects,this.form.departmentIds) + // this.subjectFilter = this.subjects }, search () { - this.questionPage.queryParam.subjectId = this.form.subjectId + if (this.subjectIdList.length=1){ + this.questionPage.queryParam.subjectId = this.form.subjectId + } + this.questionPage.listLoading = true questionApi.pageList(this.questionPage.queryParam).then(data => { const re = data.response @@ -242,7 +308,7 @@ this.$refs['form'].resetFields() this.form = { id: null, - level: null, + departmentIds: [], subjectId: null, paperType: 1, limitDateTime: [], -- Gitblit v1.8.0