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