From db5455a1bcea1d8e69cfc13fc8f74ea10f59ad6f Mon Sep 17 00:00:00 2001 From: qirong <2032486488@qq.com> Date: 星期五, 27 十月 2023 13:37:09 +0800 Subject: [PATCH] 部门修改 --- src/views/exam/paper/edit.vue | 165 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 129 insertions(+), 36 deletions(-) diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue index 638773c..c0fe145 100644 --- a/src/views/exam/paper/edit.vue +++ b/src/views/exam/paper/edit.vue @@ -1,21 +1,19 @@ <template> <div class="app-container"> <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 label="鑰冪敓锛�" prop="userIds" required> + <el-cascader v-model="form.userIds" :options="options" :props="props" clearable collapse-tags> + </el-cascader> </el-form-item> <el-form-item label="璇剧洰锛�" prop="subjectId" required> <el-select ref="subjectIdRef" v-model="form.subjectId" placeholder="璇剧洰" multiple - collapse-tags @visible-change="subjectIdEvent" > + 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> - <el-select v-model="form.paperType" placeholder="璇曞嵎绫诲瀷" > + <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> @@ -25,9 +23,7 @@ </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> @@ -35,21 +31,32 @@ <span>鎬绘暟鍒嗭細</span> </el-col> <el-col :span="9" v-if="form.paperType==7"> - <el-input v-model="form.name"/> + <el-input disabled v-model="form.aggregateSource"/> </el-col> </el-row> </el-form-item> - <el-form-item :key="index" :label="titleItem.label+':'" required v-for="(titleItem,index) in subjectIdList" 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> - </el-col> - <el-col :span="9"> - <el-input v-model="titleItem.name" style="width: 80%"/> - </el-col> + <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"/>--> @@ -101,7 +108,6 @@ <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="id" label="Id" width="60px"/> <el-table-column prop="questionType" label="棰樺瀷" :formatter="questionTypeFormatter" width="70px"/> <el-table-column prop="shortTitle" label="棰樺共" show-overflow-tooltip/> </el-table> @@ -123,27 +129,51 @@ import QuestionShow from '../question/components/Show' import examPaperApi from '@/api/examPaper' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { Pagination, QuestionShow }, data () { return { + 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:{ + multiple: true + }, subjectIdList:[], form: { + aggregateSource:100, id: null, departmentIds: [], + userIds: [], subjectId: [], paperType: 1, limitDateTime: [], name: '', suggestTime: null, - titleItems: [] + titleItems: [], + subjectSource:{}, + questionTypeVMS:[] }, subjectFilter: null, formLoading: false, rules: { - departmentIds: [ - { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } + userIds: [ + { required: true, message: '璇烽�夋嫨', trigger: 'change' } ], subjectId: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } @@ -185,11 +215,28 @@ _this.formLoading = true examPaperApi.select(id).then(re => { _this.form = re.response + _this.form.userIds = re.response.userId + 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}})}}) + }) }, methods: { + 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=[] @@ -199,29 +246,72 @@ this.$refs.subjectIdRef.selected.forEach(item=>{ arr.push({ label:item.label, - id:item.value + subjectId:item.value, + singleChoice:'', + multipleChoice:'', + trueFalse:'' }) }) console.log(arr) + this.form.questionTypeVMS = arr } - if (arr.length>1){ + 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.paperType = 1 + this.form.questionTypeVMS=[] + // this.form.paperType = 1 } }, submitForm () { let _this = this + console.log(this.subjectIdList) + console.log(this.form.subjectSource) this.$refs.form.validate((valid) => { if (valid) { - this.formLoading = true - if (this.subjectIdList.length=1){ + this.formLoading = true; + if (this.subjectIdList.length == 1){ this.form.subjectId= this.form.subjectId + }; + let op = []; + for(var ele of this.form.userIds){ + op.push(ele[1]) + }; + this.form.userIds = op; + console.log("laks",this.form) + if(this.form.questionTypeVMS == null){ + this.form.questionTypeVMS = []; } examPaperApi.edit(this.form).then(re => { if (re.code === 1) { @@ -272,7 +362,7 @@ this.questionPage.showDialog = false }, levelChange () { - this.form.subjectId = null + // this.form.subjectId = null // this.subjectFilter = this.subjects.filter(data =>{ // return this.form.departmentIds.forEach(item=>{data.level == item}) // }) @@ -314,15 +404,18 @@ resetForm () { let lastId = this.form.id this.$refs['form'].resetFields() - this.form = { - id: null, - departmentIds: [], - subjectId: null, - paperType: 1, - limitDateTime: [], - name: '', - suggestTime: null, - titleItems: [] + this.form= { + aggregateSource:100, + id: null, + departmentIds: [], + subjectId: [], + paperType: 1, + limitDateTime: [], + name: '', + suggestTime: null, + titleItems: [], + subjectSource:null, + questionTypeVMS:[] } this.form.id = lastId }, -- Gitblit v1.8.0