src/views/exam/paper/edit copy.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/exam/paper/edit.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/exam/paper/edit copy.vue
New file @@ -0,0 +1,521 @@ <template> <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-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 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-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 label="试卷类型:" prop="paperType" required> <el-select v-model="form.paperType" placeholder="试卷类型" @visible-change="subjectIdEvent"> <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"> <el-date-picker v-model="form.limitDateTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> </el-form-item> <el-form-item label="试卷名称:" prop="name" required > <el-row :gutter="20"> <el-col :span="9"> <el-input v-model="form.name"/> </el-col> <el-col :span="2" v-if="form.paperType==7"> <span>总数分:</span> </el-col> <el-col :span="9" v-if="form.paperType==7"> <el-input disabled v-model="form.aggregateSource"/> </el-col> </el-row> </el-form-item> <el-form-item :key="item.subjectId" :label="item.label" required v-for="(item,key,index) in form.questionTypeVMS" v-if="form.paperType ==7"> <el-row > <el-col :span="3" > <span>多选题:</span> </el-col> <el-col :span="3"> <el-input v-model="form.questionTypeVMS[key].multipleChoice" style="width: 80%"/> </el-col> <el-col :span="3" > <span>单选题:</span> </el-col> <el-col :span="3"> <el-input v-model="form.questionTypeVMS[key].singleChoice" style="width: 80%"/> </el-col> <el-col :span="3" > <span>判断题:</span> </el-col> <el-col :span="3"> <el-input v-model="form.questionTypeVMS[key].trueFalse" 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 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&&subjectIdList.length<2"> <el-form-item :key="questionIndex" :label="'题目'+(questionIndex+1)+':'" v-for="(questionItem,questionIndex) in titleItem.questionItems" style="margin-bottom: 15px"> <el-row> <el-col :span="23"> <QuestionShow :qType="questionItem.questionType" :question="questionItem"/> </el-col> <el-col :span="1"> <el-button type="text" size="mini" @click="titleItem.questionItems.splice(questionIndex,1)">删除 </el-button> </el-col> </el-row> </el-form-item> </el-card> </el-form-item> <el-form-item label="建议时长:" prop="suggestTime" required> <el-input v-model="form.suggestTime" placeholder="分钟"/> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> <el-button @click="resetForm">重置</el-button> <el-button type="success" @click="addTitle">添加标题</el-button> </el-form-item> </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> <el-form-item label="题型:"> <el-select v-model="questionPage.queryParam.questionType" clearable> <el-option v-for="item in questionTypeEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click="queryForm">查询</el-button> </el-form-item> </el-form> <el-table v-loading="questionPage.listLoading" :data="questionPage.tableData" @selection-change="handleSelectionChange" border fit highlight-current-row style="width: 100%"> <el-table-column type="selection" width="35"></el-table-column> <el-table-column prop="questionType" label="题型" :formatter="questionTypeFormatter" width="70px"/> <el-table-column prop="shortTitle" label="题干" show-overflow-tooltip/> </el-table> <pagination v-show="questionPage.total>0" :total="questionPage.total" :page.sync="questionPage.queryParam.pageIndex" :limit.sync="questionPage.queryParam.pageSize" @pagination="search"/> <span slot="footer" class="dialog-footer"> <el-button @click="questionPage.showDialog = false">取 消</el-button> <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" row-key="id"> <el-table-column type="selection" :reserve-selection="true"></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> <script> import { mapGetters, mapState, mapActions } from 'vuex' import Pagination from '@/components/Pagination' import QuestionShow from '../question/components/Show' 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: 5, listLoading: true, multipleSelection: [] }, tableData: [], total: 0, props: { multiple: true }, options: [], departCascaderProps:{ multiple: true }, subjectIdList:[], form: { menuIds: [], aggregateSource:100, id: null, departmentIds: [], userIds: [], subjectId: [], paperType: 1, limitDateTime: [], name: '', suggestTime: null, titleItems: [], subjectSource:{}, questionTypeVMS:[] }, subjectFilter: null, formLoading: false, rules: { menuIds: [ { required: true, message: '请选择', trigger: 'change' } ], subjectId: [ { required: true, message: '请选择课目', trigger: 'change' } ], deptId: [ { required: true, message: '请选择部门', trigger: 'change' } ], paperType: [ { required: true, message: '请选择试卷类型', trigger: 'change' } ], name: [ { required: true, message: '请输入试卷名称', trigger: 'blur' } ], suggestTime: [ { required: true, message: '请输入建议时长', trigger: 'blur' } ] }, questionPage: { multipleSelection: [], showDialog: false, queryParam: { id: null, questionType: null, subjectId: 1, pageIndex: 1, pageSize: 5 }, listLoading: true, tableData: [], total: 0 }, currentTitleItem: null, examineeList: [] } }, created () { let id = this.$route.query.id let _this = this this.initSubject(function () { _this.subjectFilter = _this.subjects }) if (id && parseInt(id) !== 0) { _this.formLoading = true examPaperApi.select(id).then(re => { _this.form = re.response _this.form.menuIds = JSON.parse(re.response.menuIds) console.log(_this.form) _this.formLoading = false }) } departmentApi.selectDepartmentUser().then(res => { console.log("res",res); _this.options = res.response.map(x=>{return{value:x.department.id,label:x.department.name,children:x.userList.map(xx=>{return{value: xx.id,label: xx.realName}})}}) }) departmentApi.getDeptAdmins().then(res => { this.depts = res.response }) }, 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) }, titlejs(val){ console.log(val) let str = '' this.subjectFilter.forEach(item=>{ if (item.id == val){ str = item.name } }) return str }, 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, subjectId:item.value, singleChoice:'', multipleChoice:'', trueFalse:'' }) }) console.log(arr) this.form.questionTypeVMS = arr } if (this.form.paperType ==7){ //說明是隨機 this.subjectIdList = arr let obj1={} let arr1 = [] arr.forEach((item,index)=>{ // obj1[item.id]='' arr1.push({ subjectId:item.id, singleChoice:'', multipleChoice:'', trueFalse:'' }) // let obj={ // item // } // for (let i in obj) { // i=item.id // obj[i]= '' // obj1[i] = '' // console.log('键名:', i); // console.log('键值:', obj[i]); // } }) this.form.subjectSource = obj1 console.log(this.form.subjectSource) console.log(this.form.questionTypeVMS) // this.form.paperType = 7 this.form.titleItems = [] }else { this.form.subjectSource={} this.subjectIdList = [] this.form.questionTypeVMS=[] // 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 }; // 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); console.log("laks",this.form) if(this.form.questionTypeVMS == null){ this.form.questionTypeVMS = []; } examPaperApi.edit(this.form).then(re => { if (re.code === 1) { _this.$message.success(re.message) _this.delCurrentView(_this).then(() => { _this.$router.push('/exam/paper/list') }) } else { _this.$message.error(re.message) this.formLoading = false } }).catch(e => { this.formLoading = false }) } else { return false } }) }, addTitle () { this.form.titleItems.push({ name: '', questionItems: [] }) }, addQuestion (titleItem) { console.log('titleItem', titleItem) this.currentTitleItem = titleItem this.questionPage.showDialog = true this.search() }, removeTitleItem (titleItem) { this.form.titleItems.remove(titleItem) }, removeQuestion (titleItem, questionItem) { titleItem.questionItems.remove(questionItem) }, queryForm () { this.questionPage.queryParam.pageIndex = 1 this.search() }, confirmQuestionSelect () { let _this = this this.questionPage.multipleSelection.forEach(q => { questionApi.select(q.id).then(re => { if (!_this.currentTitleItem.questionItems.some(obj => obj.id === re.response.id)) { _this.currentTitleItem.questionItems.push(re.response) } }) }) this.questionPage.showDialog = false }, confirmStudentSelect () { this.student.multipleSelection.forEach(q => { this.examineeList.push({ label: q.realName, value: q.id }) // this.form.menuIds.push(q.id) }) this.studentDialog = false }, levelChange () { // this.form.subjectId = null // 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 () { 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 this.questionPage.tableData = re.list this.questionPage.total = re.total this.questionPage.queryParam.pageIndex = re.pageNum this.questionPage.listLoading = false }) }, handleSelectionChange (val) { this.questionPage.multipleSelection = val }, handleSelection (val) { this.student.multipleSelection = val }, questionTypeFormatter (row, column, cellValue, index) { return this.enumFormat(this.questionTypeEnum, cellValue) }, subjectFormatter (row, column, cellValue, index) { return this.subjectEnumFormat(cellValue) }, resetForm () { let lastId = this.form.id this.$refs['form'].resetFields() this.form= { aggregateSource:100, id: null, departmentIds: [], subjectId: [], paperType: 1, limitDateTime: [], name: '', suggestTime: null, titleItems: [], subjectSource:null, questionTypeVMS:[] } this.form.id = lastId }, ...mapActions('exam', { initSubject: 'initSubject' }), ...mapActions('tagsView', { delCurrentView: 'delCurrentView' }) }, computed: { ...mapGetters('enumItem', ['enumFormat']), ...mapState('enumItem', { questionTypeEnum: state => state.exam.question.typeEnum, paperTypeEnum: state => state.exam.examPaper.paperTypeEnum, levelEnum: state => state.user.levelEnum }), ...mapState('exam', { subjects: state => state.subjects }) } } </script> <style lang="scss"> .exampaper-item-box { .q-title { margin: 0px 5px 0px 5px; } .q-item-content { } } </style> src/views/exam/paper/edit.vue
@@ -2,13 +2,14 @@ <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-select v-model="form.menuIds" :collapse-tags="true" multiple placeholder="请选择" @focus="selectStudent"></el-select> <el-select v-model="form.menuIds" :collapse-tags="true" multiple placeholder="请选择" @focus="selectStudent" popper-class="examinee-popper" > </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 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> @@ -39,7 +40,8 @@ </el-col> </el-row> </el-form-item> <el-form-item :key="item.subjectId" :label="item.label" required v-for="(item,key,index) in form.questionTypeVMS" v-if="form.paperType ==7"> <el-form-item :key="item.subjectId" :label="item.label" required v-for="(item, key, index) in form.questionTypeVMS" v-if="form.paperType == 7"> <el-row > <el-col :span="3" > <span>多选题:</span> @@ -65,9 +67,11 @@ <!-- <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-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 v-if="form.paperType!=7" 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> @@ -102,7 +106,8 @@ </el-form-item> <el-form-item label="题型:"> <el-select v-model="questionPage.queryParam.questionType" clearable> <el-option v-for="item in questionTypeEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> <el-option v-for="item in questionTypeEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> </el-select> </el-form-item> <el-form-item> @@ -140,12 +145,12 @@ <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 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> <el-table-column prop="realName" label="用户"/> </el-table> <pagination v-show="total > 0" :total="total" :page.sync="student.pageIndex" :limit.sync="student.pageSize" <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> @@ -157,13 +162,13 @@ <script> import { mapGetters, mapState, mapActions } from 'vuex' import Pagination from '@/components/Pagination' import QuestionShow from '../question/components/Show' import examPaperApi from '@/api/examPaper' import questionApi from '@/api/question' import departmentApi from '@/api/department' import userApi from '@/api/user' import { mapGetters, mapState, mapActions } from 'vuex'; import Pagination from '@/components/Pagination'; import QuestionShow from '../question/components/Show'; 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 }, @@ -240,64 +245,79 @@ tableData: [], total: 0 }, currentTitleItem: null } currentTitleItem: null, examineeList: [], }; }, created () { let id = this.$route.query.id let _this = this let id = this.$route.query.id; let _this = this; this.initSubject(function () { _this.subjectFilter = _this.subjects }) _this.subjectFilter = _this.subjects; }); if (id && parseInt(id) !== 0) { _this.formLoading = true _this.formLoading = true; examPaperApi.select(id).then(re => { _this.form = re.response _this.form.menuIds = JSON.parse(re.response.menuIds) console.log(_this.form) _this.formLoading = false }) _this.form = re.response; _this.form.menuIds = JSON.parse(re.response.menuIds); console.log(_this.form); _this.formLoading = false; }); } departmentApi.selectDepartmentUser().then(res => { console.log("res",res); _this.options = res.response.map(x=>{return{value:x.department.id,label:x.department.name,children:x.userList.map(xx=>{return{value: xx.id,label: xx.realName}})}}) }) _this.options = res.response.map(x => { return { value: x.department.id, label: x.department.name, children: x.userList.map(xx => { return { value: xx.id, label: xx.realName }; }) }; }); }); departmentApi.getDeptAdmins().then(res => { this.depts = res.response }) this.depts = res.response; }); }, methods: { getTags () { userApi.tagList(null).then(data => { this.tags = data.response }) this.tags = data.response; }); }, selectStudent() { this.getTags(); this.studentDialog = true; this.student.listLoading = true; examPaperApi.selectStudent(this.student).then(res => { this.tableData = res.response.list this.total = res.response.total this.student.listLoading = false }) this.tableData = res.response.list; this.total = res.response.total; this.student.listLoading = false; this.$nextTick(() => { this.tableData.map(data => { if (this.form.menuIds.find(item => item === data.id)) { this.$refs.multipleTable.toggleRowSelection(data, true); } else { this.$refs.multipleTable.toggleRowSelection(data, false); } }); }); }); }, handleChange(val){ console.log(val) console.log(val); }, titlejs(val){ console.log(val) let str = '' console.log(val); let str = ''; this.subjectFilter.forEach(item=>{ if (item.id == val){ str = item.name str = item.name; } }) return str }); return str; }, subjectIdEvent(e){ console.log(e,this.$refs.subjectIdRef.selected) let arr=[] console.log(e, this.$refs.subjectIdRef.selected); let arr = []; if (e){ }else { @@ -308,17 +328,17 @@ singleChoice:'', multipleChoice:'', trueFalse:'' }) }) console.log(arr) this.form.questionTypeVMS = arr }); }); console.log(arr); this.form.questionTypeVMS = arr; } if (this.form.paperType ==7){ //說明是隨機 this.subjectIdList = arr let obj1={} let arr1 = [] this.subjectIdList = arr; let obj1 = {}; let arr1 = []; arr.forEach((item,index)=>{ // obj1[item.id]='' arr1.push({ @@ -326,7 +346,7 @@ singleChoice:'', multipleChoice:'', trueFalse:'' }) }); // let obj={ // item // } @@ -338,95 +358,91 @@ // console.log('键名:', i); // console.log('键值:', obj[i]); // } }) this.form.subjectSource = obj1 }); this.form.subjectSource = obj1; console.log(this.form.subjectSource) console.log(this.form.questionTypeVMS) console.log(this.form.subjectSource); console.log(this.form.questionTypeVMS); // this.form.paperType = 7 this.form.titleItems = [] this.form.titleItems = []; }else { this.form.subjectSource={} this.subjectIdList = [] this.form.questionTypeVMS=[] this.form.subjectSource = {}; this.subjectIdList = []; this.form.questionTypeVMS = []; // this.form.paperType = 1 } }, submitForm () { let _this = this let _this = this; this.$refs.form.validate((valid) => { if (valid) { const tempForm = JSON.parse(JSON.stringify(this.form)); this.formLoading = true; if (this.subjectIdList.length == 1){ this.form.subjectId= this.form.subjectId tempForm.subjectId = tempForm.subjectId; }; // 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); console.log("laks",this.form) if(this.form.questionTypeVMS == null){ this.form.questionTypeVMS = []; tempForm.userIds = tempForm.menuIds; tempForm.menuIds = JSON.stringify(tempForm.menuIds); if (tempForm.questionTypeVMS == null) { tempForm.questionTypeVMS = []; } examPaperApi.edit(this.form).then(re => { examPaperApi.edit(tempForm).then(re => { if (re.code === 1) { _this.$message.success(re.message) _this.$message.success(re.message); _this.delCurrentView(_this).then(() => { _this.$router.push('/exam/paper/list') }) _this.$router.push('/exam/paper/list'); }); } else { _this.$message.error(re.message) this.formLoading = false _this.$message.error(re.message); this.formLoading = false; } }).catch(e => { this.formLoading = false }) this.formLoading = false; }); } else { return false return false; } }) }); }, addTitle () { this.form.titleItems.push({ name: '', questionItems: [] }) }); }, addQuestion (titleItem) { console.log('titleItem', titleItem) this.currentTitleItem = titleItem this.questionPage.showDialog = true this.search() console.log('titleItem', titleItem); this.currentTitleItem = titleItem; this.questionPage.showDialog = true; this.search(); }, removeTitleItem (titleItem) { this.form.titleItems.remove(titleItem) this.form.titleItems.remove(titleItem); }, removeQuestion (titleItem, questionItem) { titleItem.questionItems.remove(questionItem) titleItem.questionItems.remove(questionItem); }, queryForm () { this.questionPage.queryParam.pageIndex = 1 this.search() this.questionPage.queryParam.pageIndex = 1; this.search(); }, confirmQuestionSelect () { let _this = this let _this = this; this.questionPage.multipleSelection.forEach(q => { questionApi.select(q.id).then(re => { if (!_this.currentTitleItem.questionItems.some(obj => obj.id === re.response.id)) { _this.currentTitleItem.questionItems.push(re.response) _this.currentTitleItem.questionItems.push(re.response); } }) }) this.questionPage.showDialog = false }); }); this.questionPage.showDialog = false; }, confirmStudentSelect () { this.student.multipleSelection.forEach(q => { this.form.menuIds.push(q.id) }) this.studentDialog = false this.form.menuIds = this.student.multipleSelection.map((item) => item.id); this.studentDialog = false; }, levelChange () { // this.form.subjectId = null // this.subjectFilter = this.subjects.filter(data =>{ @@ -441,38 +457,38 @@ // } // }) // }) console.log(this.subjects,this.form.departmentIds) console.log(this.subjects, this.form.departmentIds); // this.subjectFilter = this.subjects }, search () { if (this.subjectIdList.length=1){ this.questionPage.queryParam.subjectId = this.form.subjectId this.questionPage.queryParam.subjectId = this.form.subjectId; } this.questionPage.listLoading = true this.questionPage.listLoading = true; questionApi.pageList(this.questionPage.queryParam).then(data => { const re = data.response this.questionPage.tableData = re.list this.questionPage.total = re.total this.questionPage.queryParam.pageIndex = re.pageNum this.questionPage.listLoading = false }) const re = data.response; this.questionPage.tableData = re.list; this.questionPage.total = re.total; this.questionPage.queryParam.pageIndex = re.pageNum; this.questionPage.listLoading = false; }); }, handleSelectionChange (val) { this.questionPage.multipleSelection = val this.questionPage.multipleSelection = val; }, handleSelection (val) { this.student.multipleSelection = val this.student.multipleSelection = val; }, questionTypeFormatter (row, column, cellValue, index) { return this.enumFormat(this.questionTypeEnum, cellValue) return this.enumFormat(this.questionTypeEnum, cellValue); }, subjectFormatter (row, column, cellValue, index) { return this.subjectEnumFormat(cellValue) return this.subjectEnumFormat(cellValue); }, resetForm () { let lastId = this.form.id this.$refs['form'].resetFields() let lastId = this.form.id; this.$refs['form'].resetFields(); this.form= { aggregateSource:100, id: null, @@ -485,8 +501,8 @@ titleItems: [], subjectSource:null, questionTypeVMS:[] } this.form.id = lastId }; this.form.id = lastId; }, ...mapActions('exam', { initSubject: 'initSubject' }), ...mapActions('tagsView', { delCurrentView: 'delCurrentView' }) @@ -500,7 +516,7 @@ }), ...mapState('exam', { subjects: state => state.subjects }) } } }; </script> <style lang="scss"> @@ -508,7 +524,11 @@ .q-title { margin: 0px 5px 0px 5px; } .q-item-content { .q-item-content {} } .examinee-popper { display: none !important; } </style>