From 840e55adc10d028710de98aef0218cd4f68302af Mon Sep 17 00:00:00 2001 From: odc.xiaohui <xiaohui@Q1> Date: 星期二, 13 六月 2023 15:21:46 +0800 Subject: [PATCH] 部门修改 --- src/api/department.js | 10 + vue.config.js | 2 src/views/exam/question/edit/multiple-choice.vue | 32 +++ src/views/education/subject/list.vue | 10 src/router.js | 13 + src/views/education/department/list.vue | 98 ++++++++++++ src/views/exam/question/edit/single-choice.vue | 32 +++ src/views/exam/question/edit/true-false.vue | 34 +++ src/views/education/subject/edit.vue | 29 +++ src/views/education/department/edit.vue | 124 +++++++++++++++ src/views/exam/question/edit/short-answer.vue | 32 +++ src/views/exam/question/edit/gap-filling.vue | 32 +++ src/App.vue | 32 +++ 13 files changed, 434 insertions(+), 46 deletions(-) diff --git a/src/App.vue b/src/App.vue index ec9032c..8e554d8 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,7 +5,37 @@ </template> <script> +import { mapGetters, mapState, mapActions } from 'vuex' +import departmentApi from '@/api/department' export default { - name: 'App' + name: 'App', + data(){ + return{ + depart:[] + } + }, + created () { + console.log(this.Islogin) + }, + computed:{ + ...mapState('enumItem',{Islogin:state => state.user.levelEnum}) + }, + mounted () { + + console.log(this.Islogin) + this.seachPageDepartMentList() + }, + methods:{ + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + } + } } + </script> diff --git a/src/api/department.js b/src/api/department.js new file mode 100644 index 0000000..ad2e75c --- /dev/null +++ b/src/api/department.js @@ -0,0 +1,10 @@ +import { post } from '@/utils/request' + +export default { + list: query => post('/api/admin/education/department/list'), + pageList: query => post('/api/admin/department/page/list', query), + edit: query => post('/api/admin/department/update', query), + select: id => post('/api/admin/department/get/' + id), + deleteSubject: id => post('/api/admin/education/department/delete/' + id), + addData:query=>post('/api/admin/department/add',query) +} diff --git a/src/router.js b/src/router.js index 30e4dd1..b4da040 100644 --- a/src/router.js +++ b/src/router.js @@ -179,11 +179,24 @@ meta: { title: '璇剧洰鍒楄〃', noCache: true } }, { + path: 'department/list', + component: () => import('@/views/education/department/list'), + name: 'EducationDepartmentPage', + meta: { title: '閮ㄩ棬鍒楄〃', noCache: true } + }, + { path: 'subject/edit', component: () => import('@/views/education/subject/edit'), name: 'EducationSubjectEditPage', meta: { title: '璇剧洰缂栬緫', noCache: true, activeMenu: '/education/subject/list' }, hidden: true + }, + { + path: 'department/edit', + component: () => import('@/views/education/department/edit'), + name: 'EducationSubjectEditPage', + meta: { title: '閮ㄩ棬缂栬緫', noCache: true, activeMenu: '/education/department/list' }, + hidden: true } ] }, diff --git a/src/views/education/department/edit.vue b/src/views/education/department/edit.vue new file mode 100644 index 0000000..49d73c9 --- /dev/null +++ b/src/views/education/department/edit.vue @@ -0,0 +1,124 @@ +<template> + <div class="app-container"> + + <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading"> + <el-form-item label="閮ㄩ棬锛�" required> + <el-input v-model="form.name"></el-input> + </el-form-item> +<!-- <el-form-item label="閮ㄩ棬锛�" required>--> +<!-- <el-select v-model="form.level" placeholder="閮ㄩ棬">--> +<!-- <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> + <el-button type="primary" @click="submitForm">鎻愪氦</el-button> + <el-button @click="resetForm">閲嶇疆</el-button> + </el-form-item> + </el-form> + </div> +</template> + +<script> +import { mapGetters, mapState, mapActions } from 'vuex' +import subjectApi from '@/api/subject' +import departmentApi from '@/api/department' +export default { + data () { + return { + form: { + id: null, + name: '', + // level: 1, + // levelName: '' + }, + fig: 0, + formLoading: false + } + }, + created () { + let id = this.$route.query.id + console.log(id) + let _this = this + if (id && parseInt(id) !== 0) { + _this.formLoading = true + departmentApi.select(id).then(re => { + _this.form = re.response + _this.formLoading = false + }) + } + if (id == undefined) { + _this.fig = 1 //鏄柊澧� + } else { + _this.fig = 0 //鏄紪杈� + } + }, + methods: { + submitForm () { + let _this = this + this.formLoading = true + // this.form.levelName = this.enumFormat(this.levelEnum, this.form.level) + let obj = { + name:this.form.name + } + if (_this.fig==1){ + departmentApi.addData(this.form.name).then(res=>{ + console.log(res) + if (res.code ==1){ + _this.$message.success(res.message) + _this.delCurrentView(_this).then(() => { + _this.$router.push('/education/department/list') + }) + }else { + _this.$message.error(res.message) + } + }) + }else { + departmentApi.edit(this.form).then(res=>{ + console.log(res) + if (res.code ==1){ + _this.$message.success(res.message) + _this.delCurrentView(_this).then(() => { + _this.$router.push('/education/department/list') + }) + }else { + _this.$message.error(res.message) + } + }) + } + // departmentApi.edit(this.form).then(data => { + // if (data.code === 1) { + // _this.$message.success(data.message) + // _this.delCurrentView(_this).then(() => { + // _this.$router.push('/education/department/list') + // }) + // } else { + // _this.$message.error(data.message) + // _this.formLoading = false + // } + // }).catch(e => { + // _this.formLoading = false + // }) + }, + resetForm () { + let lastId = this.form.id + this.$refs['form'].resetFields() + this.form = { + id: null, + name: '', + level: 1, + levelName: '' + } + this.form.id = lastId + }, + ...mapActions('tagsView', { delCurrentView: 'delCurrentView' }) + }, + computed: { + ...mapGetters('enumItem', [ + 'enumFormat' + ]), + ...mapState('enumItem', { + levelEnum: state => state.user.levelEnum + }) + } +} +</script> diff --git a/src/views/education/department/list.vue b/src/views/education/department/list.vue new file mode 100644 index 0000000..9365faa --- /dev/null +++ b/src/views/education/department/list.vue @@ -0,0 +1,98 @@ +<template> + <div class="app-container"> + <el-form :model="queryParam" ref="queryForm" :inline="true"> + <el-form-item label="閮ㄩ棬锛�"> + <el-input v-model="queryParam.name"></el-input> +<!-- <el-select v-model="queryParam.level" placeholder="閮ㄩ棬" clearable="">--> +<!-- <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> + <el-button type="primary" @click="submitForm">鏌ヨ</el-button> + <router-link :to="{path:'/education/department/edit'}" class="link-left"> + <el-button type="primary">娣诲姞</el-button> + </router-link> + </el-form-item> + </el-form> + + <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> + <el-table-column prop="id" label="Id" /> + <el-table-column prop="name" label="閮ㄩ棬"/> +<!-- <el-table-column prop="levelName" label="閮ㄩ棬" />--> + <el-table-column width="220px" label="鎿嶄綔" align="center"> + <template slot-scope="{row}"> + <router-link :to="{path:'/education/department/edit', query:{id:row.id}}" class="link-left"> + <el-button size="mini">缂栬緫</el-button> + </router-link> + <el-button size="mini" type="danger" @click="delSubject(row)" class="link-left">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize" + @pagination="search"/> + </div> +</template> + +<script> +import { mapGetters, mapState } from 'vuex' +import Pagination from '@/components/Pagination' +import subjectApi from '@/api/subject' +import departmentApi from '@/api/department' +export default { + components: { Pagination }, + data () { + return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 10 + }, + listLoading: true, + tableData: [], + total: 0 + } + }, + created () { + this.search() + }, + methods: { + search () { + this.listLoading = true + departmentApi.pageList(this.queryParam).then(data => { + const re = data.response + this.tableData = re.list + this.total = re.total + this.queryParam.pageIndex = re.pageNum + this.listLoading = false + }) + }, + submitForm () { + this.queryParam.pageIndex = 1 + this.search() + }, + delSubject (row) { + let _this = this + let obj = { + id :row.id, + deleted:1 + } + departmentApi.edit(obj).then(re => { + if (re.code === 1) { + _this.search() + _this.$message.success(re.message) + } else { + _this.$message.error(re.message) + } + }) + } + }, + computed: { + ...mapGetters('enumItem', [ + 'enumFormat' + ]), + ...mapState('enumItem', { + levelEnum: state => state.user.levelEnum + }) + } +} +</script> diff --git a/src/views/education/subject/edit.vue b/src/views/education/subject/edit.vue index dd4bbfb..3961f61 100644 --- a/src/views/education/subject/edit.vue +++ b/src/views/education/subject/edit.vue @@ -6,8 +6,8 @@ <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="閮ㄩ棬锛�" required> - <el-select v-model="form.level" placeholder="閮ㄩ棬"> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-select ref="departRef" v-model="form.level" placeholder="閮ㄩ棬"> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> <el-form-item> @@ -21,17 +21,24 @@ <script> import { mapGetters, mapState, mapActions } from 'vuex' import subjectApi from '@/api/subject' +import departmentApi from '@/api/department' export default { data () { return { + depart:[], form: { id: null, name: '', - level: 1, + level: null, levelName: '' }, - formLoading: false + formLoading: false, + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, } }, created () { @@ -44,12 +51,24 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, submitForm () { let _this = this this.formLoading = true - this.form.levelName = this.enumFormat(this.levelEnum, this.form.level) + console.log(_this.$refs.departRef.selected.label) + // this.form.levelName = this.enumFormat(this.levelEnum, this.form.level) + this.form.levelName = _this.$refs.departRef.selected.label subjectApi.edit(this.form).then(data => { if (data.code === 1) { _this.$message.success(data.message) diff --git a/src/views/education/subject/list.vue b/src/views/education/subject/list.vue index 6117f6e..8025b88 100644 --- a/src/views/education/subject/list.vue +++ b/src/views/education/subject/list.vue @@ -1,10 +1,11 @@ <template> <div class="app-container"> <el-form :model="queryParam" ref="queryForm" :inline="true"> - <el-form-item label="閮ㄩ棬锛�"> - <el-select v-model="queryParam.level" placeholder="閮ㄩ棬" clearable=""> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> - </el-select> + <el-form-item label="鏌ヨ鏉′欢锛�"> + <el-input v-model="queryParam.name"></el-input> +<!-- <el-select v-model="queryParam.level" placeholder="閮ㄩ棬" clearable="">--> +<!-- <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> <el-button type="primary" @click="submitForm">鏌ヨ</el-button> @@ -55,6 +56,7 @@ this.search() }, methods: { + search () { this.listLoading = true subjectApi.pageList(this.queryParam).then(data => { diff --git a/src/views/exam/question/edit/gap-filling.vue b/src/views/exam/question/edit/gap-filling.vue index f163e96..668fe9a 100644 --- a/src/views/exam/question/edit/gap-filling.vue +++ b/src/views/exam/question/edit/gap-filling.vue @@ -3,11 +3,12 @@ <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> <el-form-item label="閮ㄩ棬锛�" prop="gradeLevel" required> <el-select v-model="form.gradeLevel" placeholder="閮ㄩ棬" @change="levelChange"> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰" > + <el-form-item label="璇剧洰锛�" prop="subjectIds" required> + <el-select v-model="form.subjectIds" placeholder="璇剧洰" multiple + collapse-tags> <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> @@ -53,6 +54,7 @@ import Ueditor from '@/components/Ueditor' import { mapGetters, mapState, mapActions } from 'vuex' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { @@ -60,11 +62,17 @@ }, data () { return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, + depart:[], form: { id: null, questionType: 4, gradeLevel: null, - subjectId: null, + title: '', items: [ ], @@ -79,7 +87,7 @@ gradeLevel: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], - subjectId: [ + subjectIds: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } ], title: [ @@ -119,8 +127,18 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, editorReady (instance) { this.richEditor.instance = instance let currentContent = this.richEditor.object[this.richEditor.parameterName] @@ -199,7 +217,7 @@ }) }, levelChange () { - this.form.subjectId = null + this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel) }, showQuestion () { @@ -214,7 +232,7 @@ id: null, questionType: 4, gradeLevel: null, - subjectId: null, + title: '', items: [ ], diff --git a/src/views/exam/question/edit/multiple-choice.vue b/src/views/exam/question/edit/multiple-choice.vue index 38301e0..6768d8b 100644 --- a/src/views/exam/question/edit/multiple-choice.vue +++ b/src/views/exam/question/edit/multiple-choice.vue @@ -3,11 +3,12 @@ <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> <el-form-item label="閮ㄩ棬锛�" prop="gradeLevel" required> <el-select v-model="form.gradeLevel" placeholder="閮ㄩ棬" @change="levelChange"> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰" > + <el-form-item label="璇剧洰锛�" prop="subjectIds" required> + <el-select v-model="form.subjectIds" placeholder="璇剧洰" multiple + collapse-tags> <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> @@ -60,6 +61,7 @@ import Ueditor from '@/components/Ueditor' import { mapGetters, mapState, mapActions } from 'vuex' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { @@ -67,11 +69,17 @@ }, data () { return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, + depart:[], form: { id: null, questionType: 2, gradeLevel: null, - subjectId: null, + title: '', items: [ { id: null, prefix: 'A', content: '' }, @@ -91,7 +99,7 @@ gradeLevel: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], - subjectId: [ + subjectIds: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } ], title: [ @@ -134,8 +142,18 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, editorReady (instance) { this.richEditor.instance = instance let currentContent = this.richEditor.object[this.richEditor.parameterName] @@ -191,7 +209,7 @@ }) }, levelChange () { - this.form.subjectId = null + this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel) }, showQuestion () { @@ -206,7 +224,7 @@ id: null, questionType: 2, gradeLevel: null, - subjectId: null, + title: '', items: [ { id: null, prefix: 'A', content: '' }, diff --git a/src/views/exam/question/edit/short-answer.vue b/src/views/exam/question/edit/short-answer.vue index 829804c..aa42ad2 100644 --- a/src/views/exam/question/edit/short-answer.vue +++ b/src/views/exam/question/edit/short-answer.vue @@ -3,11 +3,12 @@ <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> <el-form-item label="閮ㄩ棬锛�" prop="gradeLevel" required> <el-select v-model="form.gradeLevel" placeholder="閮ㄩ棬" @change="levelChange"> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰" > + <el-form-item label="璇剧洰锛�" prop="subjectIds" required> + <el-select v-model="form.subjectIds" placeholder="璇剧洰" multiple + collapse-tags> <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> @@ -50,6 +51,7 @@ import Ueditor from '@/components/Ueditor' import { mapGetters, mapState, mapActions } from 'vuex' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { @@ -57,11 +59,17 @@ }, data () { return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, + depart:[], form: { id: null, questionType: 5, gradeLevel: null, - subjectId: null, + title: '', items: [], analyze: '', @@ -75,7 +83,7 @@ gradeLevel: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], - subjectId: [ + subjectIds: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } ], title: [ @@ -118,8 +126,18 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, editorReady (instance) { this.richEditor.instance = instance let currentContent = this.richEditor.object[this.richEditor.parameterName] @@ -167,7 +185,7 @@ id: null, questionType: 5, gradeLevel: null, - subjectId: null, + title: '', items: [], analyze: '', @@ -178,7 +196,7 @@ this.form.id = lastId }, levelChange () { - this.form.subjectId = null + this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel) }, showQuestion () { diff --git a/src/views/exam/question/edit/single-choice.vue b/src/views/exam/question/edit/single-choice.vue index af93b5a..6934df7 100644 --- a/src/views/exam/question/edit/single-choice.vue +++ b/src/views/exam/question/edit/single-choice.vue @@ -3,11 +3,12 @@ <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> <el-form-item label="閮ㄩ棬锛�" prop="gradeLevel" required> <el-select v-model="form.gradeLevel" placeholder="閮ㄩ棬" @change="levelChange" clearable> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰" > + <el-form-item label="璇剧洰锛�" prop="subjectIds" required> + <el-select v-model="form.subjectIds" placeholder="璇剧洰" multiple + collapse-tags> <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> @@ -60,6 +61,7 @@ import Ueditor from '@/components/Ueditor' import { mapGetters, mapState, mapActions } from 'vuex' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { @@ -67,11 +69,17 @@ }, data () { return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, + depart:[], form: { id: null, questionType: 1, gradeLevel: null, - subjectId: null, + title: '', items: [ { prefix: 'A', content: '' }, @@ -90,7 +98,7 @@ gradeLevel: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], - subjectId: [ + subjectIds: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } ], title: [ @@ -133,8 +141,18 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, editorReady (instance) { this.richEditor.instance = instance let currentContent = this.richEditor.object[this.richEditor.parameterName] @@ -196,7 +214,7 @@ id: null, questionType: 1, gradeLevel: null, - subjectId: null, + title: '', items: [ { prefix: 'A', content: '' }, @@ -212,7 +230,7 @@ this.form.id = lastId }, levelChange () { - this.form.subjectId = null + this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel) }, showQuestion () { diff --git a/src/views/exam/question/edit/true-false.vue b/src/views/exam/question/edit/true-false.vue index 5b695e4..dbbe533 100644 --- a/src/views/exam/question/edit/true-false.vue +++ b/src/views/exam/question/edit/true-false.vue @@ -3,11 +3,12 @@ <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules"> <el-form-item label="閮ㄩ棬锛�" prop="gradeLevel" required> <el-select v-model="form.gradeLevel" placeholder="閮ㄩ棬" @change="levelChange"> - <el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option> + <el-option v-for="item in depart" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> - <el-form-item label="璇剧洰锛�" prop="subjectId" required> - <el-select v-model="form.subjectId" placeholder="璇剧洰" > + <el-form-item label="璇剧洰锛�" prop="subjectIds" required> + <el-select v-model="form.subjectIds" placeholder="璇剧洰" multiple + collapse-tags> <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> @@ -58,6 +59,7 @@ import Ueditor from '@/components/Ueditor' import { mapGetters, mapState, mapActions } from 'vuex' import questionApi from '@/api/question' +import departmentApi from '@/api/department' export default { components: { @@ -65,11 +67,18 @@ }, data () { return { + queryParam: { + level: null, + pageIndex: 1, + pageSize: 100 + }, + depart:[], form: { + id: null, questionType: 3, gradeLevel: null, - subjectId: null, + title: '', items: [ { id: null, prefix: 'A', content: '鏄�' }, @@ -86,7 +95,7 @@ gradeLevel: [ { required: true, message: '璇烽�夋嫨閮ㄩ棬', trigger: 'change' } ], - subjectId: [ + subjectIds: [ { required: true, message: '璇烽�夋嫨璇剧洰', trigger: 'change' } ], title: [ @@ -129,8 +138,18 @@ _this.formLoading = false }) } + _this.seachPageDepartMentList() }, methods: { + seachPageDepartMentList(){ + let that = this + departmentApi.pageList(this.queryParam).then(res=>{ + console.log(res) + if (res.code == 1){ + that.depart = res.response.list + } + }) + }, editorReady (instance) { this.richEditor.instance = instance let currentContent = this.richEditor.object[this.richEditor.parameterName] @@ -149,6 +168,7 @@ this.richEditor.dialogVisible = false }, submitForm () { + console.log(this.form) let _this = this this.$refs.form.validate((valid) => { if (valid) { @@ -178,7 +198,7 @@ id: null, questionType: 3, gradeLevel: null, - subjectId: null, + title: '', items: [ { id: null, prefix: 'A', content: '鏄�' }, @@ -192,7 +212,7 @@ this.form.id = lastId }, levelChange () { - this.form.subjectId = null + this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel) }, showQuestion () { diff --git a/vue.config.js b/vue.config.js index 43e9f92..2284dab 100644 --- a/vue.config.js +++ b/vue.config.js @@ -19,7 +19,7 @@ hotOnly: false, proxy: { '/api': { - target: 'http://localhost:8000', + target: 'http://192.168.3.228:8000', changeOrigin: true } } -- Gitblit v1.8.0