xiangpei
2024-05-30 1aec2bdf5d71df8e120b3ead4b104fb3438f4713
编辑试卷时选择部门出现对应的课目
4个文件已修改
53 ■■■■■ 已修改文件
src/api/subject.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exam/paper/edit.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exam/paper/list.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exam/personalRandomTemplate/edit.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/subject.js
@@ -1,9 +1,10 @@
import { post } from '@/utils/request'
import { post, get } from '@/utils/request'
export default {
  list: query => post('/api/admin/education/subject/list'),
  pageList: query => post('/api/admin/education/subject/page', query),
  edit: query => post('/api/admin/education/subject/edit', query),
  select: id => post('/api/admin/education/subject/select/' + id),
  selectByDeptId: deptId => get('/api/admin/education/subject/select/dept/' + deptId),
  deleteSubject: id => post('/api/admin/education/subject/delete/' + id)
}
src/views/exam/paper/edit.vue
@@ -8,14 +8,14 @@
            :key="item.id"></el-option>
        </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-form-item label="部门:" prop="deptId" required>
        <el-select v-model="form.deptId" collapse-tags @change="getSubject" 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="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-form-item label="课目:" prop="subjectId" required>
        <el-select ref="subjectIdRef" v-model="form.subjectId" :disabled="! form.deptId" 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="paperType" required>
@@ -171,6 +171,7 @@
import { mapGetters, mapState, mapActions } from 'vuex';
import Pagination from '@/components/Pagination';
import QuestionShow from '../question/components/Show';
import subjectApi from '@/api/subject';
import examPaperApi from '@/api/examPaper';
import questionApi from '@/api/question';
import departmentApi from '@/api/department';
@@ -292,6 +293,13 @@
    });
  },
  methods: {
    getSubject(deptId) {
      // 获取对应部门的课目
      subjectApi.selectByDeptId(deptId).then(res => {
        this.form.subjectId = null
        this.subjectFilter = res.response
      })
    },
    getTags() {
      userApi.tagList(null).then(data => {
        this.tags = data.response;
src/views/exam/paper/list.vue
@@ -15,7 +15,7 @@
      <el-form-item>
        <el-button type="primary" @click="submitForm">查询</el-button>
        <router-link :to="{path:'/exam/paper/edit'}" class="link-left">
          <el-button type="primary">添加</el-button>
          <el-button type="success">添加</el-button>
        </router-link>
      </el-form-item>
    </el-form>
@@ -34,7 +34,7 @@
    </el-table>
    <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
                @pagination="search"/>
    <el-dialog
      title="补考"
      :visible.sync="dialogVisible"
@@ -54,7 +54,7 @@
        <el-button type="primary" @click="submitUpdate">确 定</el-button>
        </span>
    </el-dialog>
  </div>
</template>
src/views/exam/personalRandomTemplate/edit.vue
@@ -8,15 +8,15 @@
            :key="item.id"></el-option>
        </el-select>
      </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">
          <el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name + ' '"></el-option>
      <el-form-item label="部门:" prop="deptId" required>
        <el-select v-model="form.deptId" collapse-tags @change="getSubject" 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="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-form-item label="课目:" prop="subjectId" required>
        <el-select ref="subjectIdRef" v-model="form.subjectId" :disabled="! form.deptId" placeholder="课目" multiple collapse-tags
          @visible-change="subjectIdEvent">
          <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>
@@ -176,6 +176,7 @@
import Pagination from '@/components/Pagination';
import QuestionShow from '../question/components/Show';
import examPaperApi from '@/api/examPaper';
import subjectApi from '@/api/subject';
import userApi from '@/api/user';
import questionApi from '@/api/question';
import departmentApi from '@/api/department';
@@ -326,10 +327,15 @@
        };
      });
    });
    // this.subjectIdEvent(false)
  },
  methods: {
    getSubject(deptId) {
      // 获取对应部门的课目
      subjectApi.selectByDeptId(deptId).then(res => {
        this.form.subjectId = null
        this.subjectFilter = res.response
      })
    },
    handleSelection(val) {
      this.student.multipleSelection = val;
    },