From 2d75d3ed9435050e37ea5cf28252f8c849adec57 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期四, 16 五月 2024 17:33:44 +0800
Subject: [PATCH] fix:修改upload prop
---
src/views/exam/paper/edit.vue | 191 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 148 insertions(+), 43 deletions(-)
diff --git a/src/views/exam/paper/edit.vue b/src/views/exam/paper/edit.vue
index fbb451a..ed5dbd1 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="menuIds" required>
+ <el-cascader v-model="form.menuIds" :options="options" :props="props" @change="handleChange" 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>
@@ -24,29 +22,45 @@
range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker>
</el-form-item>
- <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-form-item label="璇曞嵎鍚嶇О锛�" prop="name" required >
+ <el-row :gutter="20">
<el-col :span="9">
- <el-input v-model="titleItem.name" style="width: 80%"/>
+ <el-input v-model="form.name"/>
</el-col>
- <el-col :span="3">
- <span>棰樼洰鍒嗘暟锛�</span>
+ <el-col :span="2" v-if="form.paperType==7">
+ <span>鎬绘暟鍒嗭細</span>
</el-col>
- <el-col :span="9">
- <el-input v-model="titleItem.name" style="width: 80%"/>
+ <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 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)">
@@ -94,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>
@@ -116,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' }
+ menuIds: [
+ { required: true, message: '璇烽�夋嫨', trigger: 'change' }
],
subjectId: [
{ required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' }
@@ -178,11 +215,31 @@
_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}})}})
+ })
},
methods: {
+ 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=[]
@@ -192,29 +249,71 @@
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
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.menuIds){
+ op.push(ele[1])
+ };
+ this.form.menuIds = JSON.stringify(this.form.menuIds);
+ 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) {
@@ -241,6 +340,7 @@
})
},
addQuestion (titleItem) {
+ console.log('titleItem', titleItem)
this.currentTitleItem = titleItem
this.questionPage.showDialog = true
this.search()
@@ -259,13 +359,15 @@
let _this = this
this.questionPage.multipleSelection.forEach(q => {
questionApi.select(q.id).then(re => {
- _this.currentTitleItem.questionItems.push(re.response)
+ if (!_this.currentTitleItem.questionItems.some(obj => obj.id === re.response.id)) {
+ _this.currentTitleItem.questionItems.push(re.response)
+ }
})
})
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})
// })
@@ -307,15 +409,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