Sfoglia il codice sorgente

题库前段页面提交

weiwenhai 6 anni fa
parent
commit
cfdfcdeb91

+ 5 - 0
src/modules/examwork/routes/routes.js

@@ -9,6 +9,7 @@ import practiceExam from "../view/practiceExam.vue";
 import offlineExam from "../view/offlineExam.vue";
 import printExam from "../view/printExam.vue";
 import offlineExamOrgSettings from "../view/offlineExamOrgSettings.vue";
+import Tips from "../../portal/views/tips/Tips.vue";
 
 export default [
   {
@@ -16,6 +17,10 @@ export default [
     meta: { auth: false },
     component: Home,
     children: [
+      {
+        path: "tips", //学生管理
+        component: Tips
+      },
       {
         path: "student", //学生管理
         meta: { pageName: "学生管理" },

+ 6 - 0
src/modules/oe/routes/routes.js

@@ -10,6 +10,8 @@ import examScheduling from "../views/examScheduling.vue";
 import captureDetail from "../views/captureDetail.vue";
 import examPaperDetail from "../views/examPaperDetail.vue";
 import examSummary from "../views/examSummary.vue";
+import Tips from "../../portal/views/tips/Tips.vue";
+
 export default [
   {
     path: "/oe/examPaperDetail/:courseId/:examRecordDataId",
@@ -21,6 +23,10 @@ export default [
     meta: { auth: false },
     component: Home,
     children: [
+      {
+        path: "tips", //模块说明
+        component: Tips
+      },
       {
         path: "absent",
         name: "absent",

+ 72 - 9
src/modules/portal/views/tips/Tips.vue

@@ -63,37 +63,100 @@ const ALL_INSTRUCTIONS = {
       ]
     }
   ],
+  "/examwork/tips": [
+    {
+      menu1Name: "安排考试",
+      menu2: [
+        {
+          name: "考试管理——考试信息",
+          // link: "/basic/campus",
+          detail: "安排一场在线考试,设置考试开启、结束时间。"
+        }
+      ]
+    },
+    {
+      menu1Name: "考试课程",
+      menu2: [
+        {
+          name: "考试管理——考生信息",
+          // link: "/basic/campus",
+          detail: "新增或导入考生报考的相关课程。"
+        }
+      ]
+    },
+    {
+      menu1Name: "学生档案",
+      menu2: [
+        {
+          name: "学生管理——学生信息",
+          // link: "/basic/campus",
+          detail: "更新学生的登录名、密码、相片。"
+        }
+      ]
+    }
+  ],
   "/questions/tips": [
     {
       menu1Name: "导入试卷",
       menu2: [
         {
-          name: "机构管理——中心列表",
+          name: "题库管理——导入试卷管理",
           // link: "/basic/campus",
-          detail:
-            "查询学校下属所有学习中心编码及名称,可按学习中心设置学习中心平台权限,即A学习中心只能查询A中心的相关考试数据。"
+          detail: "可以将word版试卷导入题库,由题库按课程、题型形成题库。"
         }
       ]
     },
     {
-      menu1Name: "课程查询",
+      menu1Name: "卷库组卷",
       menu2: [
         {
-          name: "课程管理——课程列表",
+          name: "卷库管理——考试试卷管理",
           // link: "/basic/campus",
           detail:
-            "查看所有课程名称及代码,如一门课程即有专科又有本科,课程对应在的教材、试卷不一样时,需要建立专科课程及本科课程。"
+            "可按需求将XX课程的所有试题,按分数、题量、题型结构、章节等多种方式进行随机组合,生成若干套试卷。"
         }
       ]
     },
     {
-      menu1Name: "用户查询",
+      menu1Name: "考试用卷绑定",
       menu2: [
         {
-          name: "用户管理——普通用户管理",
+          name: "考试管理——调卷规则",
           // link: "/basic/campus",
+          detail: "来指定在本次考试中使用卷库中的哪一套试卷,及抽卷的比例。"
+        }
+      ]
+    }
+  ],
+  "/oe/tips": [
+    {
+      menu1Name: "考试过程监考",
+      menu2: [
+        {
+          name: "网考管理——监考待审",
+          // link: "/oe/campus",
+          detail: "列出所有考生考试过程中的数据,并提示出违纪数据审核。"
+        }
+      ]
+    },
+    {
+      menu1Name: "考试明细查询",
+      menu2: [
+        {
+          name: "统计报表——考试明细",
+          // link: "/oe/campus",
           detail:
-            "添加、查询、禁用管理平台用户,并可以针对不同用户设置不同的平台模块权限。"
+            "需要查询学生所有作答的试卷,可以在考试明细中输入学生信息进行查询考试时间、违纪情况、客观题得分、答卷等。"
+        }
+      ]
+    },
+    {
+      menu1Name: "考试完成进度查询",
+      menu2: [
+        {
+          name: "考试进度——考试概览/考试进度详情",
+          // link: "/oe/campus",
+          detail: "可以查看按考试的人数、学习中心、课程数来查看考试完成的进度。"
         }
       ]
     }

+ 30 - 23
src/modules/questions/views/BluePaperStructure.vue

@@ -1,5 +1,8 @@
 <template>
   <section class="content">
+    <div v-show="isClear == 1">
+      <LinkTitlesCustom :currentPaths="['基础信息', '蓝图试卷结构']" />
+    </div>
     <!-- 正文信息 -->
     <div class="box-body">
       <el-form
@@ -138,7 +141,9 @@
 </template>
 <script>
 import { CORE_API, QUESTION_API } from "@/constants/constants";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       formSearch: {
@@ -308,6 +313,27 @@ export default {
         return "宏观结构";
       }
       return "微观结构";
+    },
+    initVue() {
+      this.isClear = this.$route.params.isClear;
+      if (this.isClear == 0 || !this.isClear) {
+        sessionStorage.removeItem("blue_paper_stucture");
+        sessionStorage.removeItem("blue_paper_stucture_currentPage");
+        this.formSearch = {
+          name: "",
+          courseNo: "",
+          type: "BLUEPRINT"
+        };
+        this.currentPage = 1;
+      } else {
+        this.formSearch = JSON.parse(
+          sessionStorage.getItem("blue_paper_stucture")
+        );
+        this.currentPage = parseInt(
+          sessionStorage.getItem("blue_paper_stucture_currentPage")
+        );
+      }
+      this.searchAll();
     }
   },
   computed: {
@@ -332,31 +358,12 @@ export default {
       return courseList;
     }
   },
+  watch: {
+    $route: "initVue"
+  },
   created() {
-    this.isClear = this.$route.params.isClear;
-    if (this.isClear == 0 || !this.isClear) {
-      sessionStorage.removeItem("blue_paper_stucture");
-      sessionStorage.removeItem("blue_paper_stucture_currentPage");
-    } else {
-      this.formSearch = JSON.parse(
-        sessionStorage.getItem("blue_paper_stucture")
-      );
-      this.currentPage = parseInt(
-        sessionStorage.getItem("blue_paper_stucture_currentPage")
-      );
-      if (!this.formSearch) {
-        this.formSearch = {
-          name: "",
-          courseNo: "",
-          type: "BLUEPRINT"
-        };
-      }
-      if (!this.currentPage) {
-        this.currentPage = 1;
-      }
-    }
+    this.initVue();
     this.removeItem();
-    this.searchAll();
   }
 };
 </script>

+ 13 - 3
src/modules/questions/views/CourseProperty.vue

@@ -1,5 +1,8 @@
 <template>
   <section class="content">
+    <div v-show="isClear == 1">
+      <LinkTitlesCustom :currentPaths="['基础信息', '课程属性预设']" />
+    </div>
     <!-- 正文信息 -->
     <div class="box-body">
       <el-form
@@ -183,7 +186,9 @@
 
 <script>
 import { CORE_API, QUESTION_API } from "@/constants/constants";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       formSearch: {
@@ -450,8 +455,11 @@ export default {
     initValue() {
       this.isClear = this.$route.params.isClear;
       if (this.isClear == 0 || !this.isClear) {
-        console.log("clear");
         this.removeItem();
+        this.formSearch = {
+          name: "",
+          courseId: ""
+        };
       } else {
         this.formSearch.name =
           sessionStorage.getItem("course_property_name") == "null"
@@ -466,8 +474,8 @@ export default {
             ? 1
             : parseInt(sessionStorage.getItem("course_property_currentPage"));
       }
-      console.log("this.formSearch.courseId:", this.formSearch.courseId);
       this.getOneCourse(this.formSearch.courseId);
+      this.searchCourProperty();
     },
     //查询单个课程
     getOneCourse(courseId) {
@@ -514,9 +522,11 @@ export default {
       return courseList;
     }
   },
+  watch: {
+    $route: "initValue"
+  },
   created() {
     this.initValue();
-    this.searchCourProperty();
   }
 };
 </script>

+ 17 - 15
src/modules/questions/views/EditOtherQuestion.vue

@@ -227,7 +227,7 @@
   </div>
 </template>
 <script>
-import { CORE_API } from "@/constants/constants";
+import { QUESTION_API } from "@/constants/constants";
 import { QUESTION_TYPES } from "../constants/constants";
 import ckeditor from "../component/ckeditor.vue";
 export default {
@@ -298,13 +298,15 @@ export default {
           if (this.questionId) {
             this.fullscreenLoading = true;
             //修改逻辑
-            this.$http.put(CORE_API + "/question", this.quesModel).then(() => {
-              this.$notify({
-                message: "保存成功",
-                type: "success"
+            this.$http
+              .put(QUESTION_API + "/question", this.quesModel)
+              .then(() => {
+                this.$notify({
+                  message: "保存成功",
+                  type: "success"
+                });
+                this.fullscreenLoading = false;
               });
-              this.fullscreenLoading = false;
-            });
           } else {
             //新增逻辑
             this.quesModel.courseNo = this.courseNo;
@@ -312,7 +314,7 @@ export default {
             this.fullscreenLoading = true;
             this.$http
               .post(
-                CORE_API +
+                QUESTION_API +
                   "/paper/addQuestion/" +
                   this.paperId +
                   "/" +
@@ -338,8 +340,8 @@ export default {
       });
     },
     getQues(id) {
-      this.$http.get(CORE_API + "/question/" + id).then(response => {
-        this.quesModel = response.body;
+      this.$http.get(QUESTION_API + "/question/" + id).then(response => {
+        this.quesModel = response.data;
         this.initCourseProperty();
       });
     },
@@ -353,7 +355,7 @@ export default {
       console.log(this.quesModel);
       var code = this.quesModel.course.code;
       this.$http
-        .get(CORE_API + "/courseProperty/code/" + code)
+        .get(QUESTION_API + "/courseProperty/code/" + code)
         .then(response => {
           this.coursePropertyList = response.body;
         });
@@ -366,9 +368,9 @@ export default {
       for (let courseProperty of this.coursePropertyList) {
         if (courseProperty.name == this.coursePropertyName) {
           this.$http
-            .get(CORE_API + "/property/first/" + courseProperty.id)
+            .get(QUESTION_API + "/property/first/" + courseProperty.id)
             .then(response => {
-              this.firstPropertyList = response.body;
+              this.firstPropertyList = response.data;
             });
         }
       }
@@ -377,7 +379,7 @@ export default {
     searchSecond() {
       this.secondPropertyId = "";
       this.$http
-        .get(CORE_API + "/property/second/" + this.firstPropertyId)
+        .get(QUESTION_API + "/property/second/" + this.firstPropertyId)
         .then(response => {
           this.secondPropertyList = response.body;
         });
@@ -498,7 +500,7 @@ export default {
     }
     if (this.courseNo) {
       this.$http
-        .get(CORE_API + "/courseProperty/enable/" + this.courseNo)
+        .get(QUESTION_API + "/courseProperty/enable/" + this.courseNo)
         .then(response => {
           this.coursePropertyList = response.body;
         });

+ 7 - 7
src/modules/questions/views/EditSelectQuestion.vue

@@ -280,7 +280,7 @@ export default {
       this.$http
         .get(QUESTION_API + "/question/" + questionId)
         .then(response => {
-          this.quesModel = response.body;
+          this.quesModel = response.data;
           if (this.quesModel.quesOptions) {
             for (var i = 0; i < this.quesModel.quesOptions.length; i++) {
               var option = this.quesModel.quesOptions[i];
@@ -330,10 +330,10 @@ export default {
                 QUESTION_API + "/paper/deleteQuestion/" + this.quesModel.id
               )
               .then(response => {
-                if (response.body.length > 0) {
+                if (response.data.length > 0) {
                   this.deleteInfo =
                     "该试题被试卷:" +
-                    response.body.join(" , ") +
+                    response.data.join(" , ") +
                     "使用,不能删除";
                   this.deleteDialogVisible = true;
                 } else {
@@ -454,7 +454,7 @@ export default {
       this.$http
         .get(QUESTION_API + "/courseProperty/enable/" + code)
         .then(response => {
-          this.coursePropertyList = response.body;
+          this.coursePropertyList = response.data;
         });
     },
     //查询一级属性
@@ -467,7 +467,7 @@ export default {
           this.$http
             .get(QUESTION_API + "/property/first/" + courseProperty.id)
             .then(response => {
-              this.firstPropertyList = response.body;
+              this.firstPropertyList = response.data;
             });
         }
       }
@@ -479,7 +479,7 @@ export default {
         this.$http
           .get(QUESTION_API + "/property/second/" + this.firstPropertyId)
           .then(response => {
-            this.secondPropertyList = response.body;
+            this.secondPropertyList = response.data;
           });
       }
     },
@@ -622,7 +622,7 @@ export default {
       this.$http
         .get(QUESTION_API + "/courseProperty/enable/" + this.courseNo)
         .then(response => {
-          this.coursePropertyList = response.body;
+          this.coursePropertyList = response.data;
         });
     }
   }

+ 239 - 248
src/modules/questions/views/ExtractPaperInfo.vue

@@ -1,267 +1,258 @@
 <template>
-  <div>
-    <section
-      class="content"
-      v-loading="loading"
-      element-loading-text="保存调卷规则及生成试卷文件中..."
-    >
-      <div class="box box-info">
-        <!-- 头信息 -->
-        <div class="box-header with-border">
-          <h3 class="box-title">调卷详情</h3>
-        </div>
-        <!-- 正文信息 -->
-        <div class="box-body">
-          <el-form
-            :inline="true"
-            :model="extractConfig"
-            ref="extractPaperForm"
-            label-position="right"
-            label-width="120px"
-          >
+  <section
+    class="content"
+    v-loading="loading"
+    element-loading-text="保存调卷规则及生成试卷文件中..."
+  >
+    <LinkTitlesCustom :currentPaths="['考试管理', '调卷规则', '调卷详情']" />
+    <!-- 正文信息 -->
+    <div class="box-body">
+      <el-form
+        :inline="true"
+        :model="extractConfig"
+        ref="extractPaperForm"
+        label-position="right"
+        label-width="120px"
+      >
+        <el-row>
+          <el-form-item label="考试名称">
+            <el-select
+              filterable
+              clearable
+              v-model="extractConfig.examId"
+              @change="getExamCourses"
+              placeholder="请选择"
+              :remote-method="getExams"
+              remote
+              :disabled="isInsert"
+            >
+              <el-option
+                v-for="item in examList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="课程名称">
+            <el-select
+              v-model="extractConfig.courseCode"
+              filterable
+              clearable
+              @change="getPaperTypeList"
+              placeholder="请选择"
+              :disabled="isInsert"
+            >
+              <el-option
+                v-for="item in courseInfoSelect"
+                :key="item.courseNo"
+                :label="item.courseInfo"
+                :value="item.courseNo"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+
+        <el-tabs v-model="tabs">
+          <el-tab-pane label="步骤一:调卷模式选择" name="first">
+            <el-form-item prop="status">
+              <el-radio-group
+                class="pull_right_ss"
+                v-model="extractConfig.callType"
+              >
+                <el-radio label="WHOLE_SET">成套调用</el-radio>
+                <!-- <el-radio label="RESTRUCT">重组调用</el-radio> -->
+              </el-radio-group>
+            </el-form-item>
+          </el-tab-pane>
+        </el-tabs>
+        <el-tabs v-model="tabs">
+          <el-tab-pane label="步骤二:试卷抽取比例" name="first">
             <el-row>
-              <el-form-item label="考试名称">
-                <el-select
-                  filterable
-                  clearable
-                  v-model="extractConfig.examId"
-                  @change="getExamCourses"
-                  placeholder="请选择"
-                  :remote-method="getExams"
-                  remote
-                  :disabled="isInsert"
+              <el-col :span="24">
+                <el-tag v-if="extractConfig.examType === 'TRADITION'"
+                  >传统考试</el-tag
                 >
-                  <el-option
-                    v-for="item in examList"
-                    :key="item.id"
-                    :label="item.name"
-                    :value="item.id"
+                <el-tag v-if="extractConfig.examType === 'ONLINE'"
+                  >在线考试</el-tag
+                >
+                <el-tag v-if="extractConfig.examType === 'PRACTICE'"
+                  >练习考试</el-tag
+                >
+              </el-col>
+            </el-row>
+            <el-row :key="num" v-for="(examPaper, num) in examPaperList">
+              <el-col :span="24">
+                <el-form-item label="试卷类型" class="pull-left">
+                  <el-input
+                    class="input_width_lg"
+                    placeholder="请输入试卷类型"
+                    v-model="examPaper.groupCode"
+                    disabled
+                  ></el-input>
+                </el-form-item>
+                <el-button
+                  type="primary"
+                  v-if="extractConfig.examType != 'TRADITION'"
+                  @click="addOnLinePaper(examPaper.groupCode)"
+                  ><i class="el-icon-plus"></i> 新增试卷
+                </el-button>
+              </el-col>
+              <el-col
+                :span="20"
+                :offset="2"
+                v-for="(paperInfo, index) in examPaper.paperInfoList"
+                :key="paperInfo.selectedPaperId"
+              >
+                <el-form-item>
+                  <span>试卷选定</span>
+                  <el-select
+                    filterable
+                    v-model="paperInfo.paper.id"
+                    placeholder="请选择"
+                    @change="searchAudioTimeConfig"
+                    class="select_width_lg"
                   >
-                  </el-option>
-                </el-select>
+                    <el-option
+                      v-for="item in paperList"
+                      :label="item.name"
+                      :value="item.id"
+                      :key="item.id"
+                    >
+                    </el-option>
+                  </el-select>
+                  <span>选取几率</span>
+                  <span>
+                    <el-input
+                      class="input_width_sms"
+                      v-model="paperInfo.weight"
+                      :disabled="extractConfig.examType === 'TRADITION'"
+                    ></el-input
+                    >%
+                    <i
+                      class="el-icon-delete"
+                      v-if="index > 0"
+                      @click.prevent="
+                        removePaperInfo(examPaper.groupCode, paperInfo)
+                      "
+                    ></i>
+                  </span>
+                  <span :class="'errorMsg_' + num + '_' + index"></span>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-tab-pane>
+        </el-tabs>
+        <div>
+          <el-tabs v-model="tabs">
+            <el-tab-pane label="步骤三:随机设定" name="first">
+              <el-form-item
+                label="客观题小题乱序"
+                prop="scrambling_the_question_order"
+              >
+                <el-radio-group
+                  class="pull_right_sm"
+                  v-model="extractConfig.scrambling_the_question_order"
+                >
+                  <el-radio :label="1">开启</el-radio>
+                  <el-radio :label="0">关闭</el-radio>
+                </el-radio-group>
               </el-form-item>
-              <el-form-item label="课程名称">
-                <el-select
-                  v-model="extractConfig.courseCode"
-                  filterable
-                  clearable
-                  @change="getPaperTypeList"
-                  placeholder="请选择"
-                  :disabled="isInsert"
+              <br />
+              <el-form-item
+                label="客观题选项乱序"
+                prop="scrambling_the_option_order"
+              >
+                <el-radio-group
+                  class="pull_right_sm"
+                  v-model="extractConfig.scrambling_the_option_order"
                 >
-                  <el-option
-                    v-for="item in courseInfoSelect"
-                    :key="item.courseNo"
-                    :label="item.courseInfo"
-                    :value="item.courseNo"
-                  >
-                  </el-option>
-                </el-select>
+                  <el-radio :label="1">开启</el-radio>
+                  <el-radio :label="0">关闭</el-radio>
+                </el-radio-group>
               </el-form-item>
-            </el-row>
-
-            <el-tabs v-model="tabs">
-              <el-tab-pane label="步骤一:调卷模式选择" name="first">
-                <el-form-item prop="status">
-                  <el-radio-group
-                    class="pull_right_ss"
-                    v-model="extractConfig.callType"
-                  >
-                    <el-radio label="WHOLE_SET">成套调用</el-radio>
-                    <!-- <el-radio label="RESTRUCT">重组调用</el-radio> -->
+            </el-tab-pane>
+          </el-tabs>
+        </div>
+        <div
+          style="padding: 5px;"
+          v-show="extractConfig.examType != 'PRACTICE'"
+        >
+          <el-tabs v-model="tabs">
+            <el-tab-pane label="步骤四:音频播放次数设置" name="first">
+              <el-row
+                class="row_header_word"
+                v-show="audioTimeConfigList.length > 0"
+              >
+                <el-col :span="4" :offset="1">试卷类型</el-col>
+                <el-col :span="4">试卷名称</el-col>
+                <el-col :span="3">大题号</el-col>
+                <el-col :span="3">小题号</el-col>
+                <el-col :span="4">播放次数</el-col>
+              </el-row>
+              <el-row
+                v-for="(audioTimeConfig, index) in audioTimeConfigList"
+                class="margin-top-10"
+                :key="index"
+              >
+                <el-col :span="4" :offset="1">
+                  {{ audioTimeConfig.groupCode }}
+                </el-col>
+                <el-col :span="4"> {{ audioTimeConfig.paper.name }} </el-col>
+                <el-col :span="3">
+                  {{ audioTimeConfig.paperDetailUnit.paperDetail.number }}
+                </el-col>
+                <el-col :span="3">
+                  {{ audioTimeConfig.paperDetailUnit.number }}
+                </el-col>
+                <el-col :span="4">
+                  <el-input
+                    class="input_width_ss"
+                    size="small"
+                    v-model="audioTimeConfig.playTime"
+                    >次
+                  </el-input>
+                </el-col>
+              </el-row>
+              <el-row v-show="audioTimeConfigList.length == 0">
+                <el-col :span="18" :offset="1"> 无音频试题 </el-col>
+              </el-row>
+            </el-tab-pane>
+          </el-tabs>
+        </div>
+        <div>
+          <el-tabs v-model="tabs">
+            <el-row>
+              <el-col>
+                <el-form-item label="是否生成文件">
+                  <el-radio-group v-model="isbuildFile">
+                    <el-radio label="1">是</el-radio>
+                    <el-radio label="0">否</el-radio>
                   </el-radio-group>
                 </el-form-item>
-              </el-tab-pane>
-            </el-tabs>
-            <el-tabs v-model="tabs">
-              <el-tab-pane label="步骤二:试卷抽取比例" name="first">
-                <el-row>
-                  <el-col :span="24">
-                    <el-tag v-if="extractConfig.examType === 'TRADITION'"
-                      >传统考试</el-tag
-                    >
-                    <el-tag v-if="extractConfig.examType === 'ONLINE'"
-                      >在线考试</el-tag
-                    >
-                    <el-tag v-if="extractConfig.examType === 'PRACTICE'"
-                      >练习考试</el-tag
-                    >
-                  </el-col>
-                </el-row>
-                <el-row :key="num" v-for="(examPaper, num) in examPaperList">
-                  <el-col :span="24">
-                    <el-form-item label="试卷类型" class="pull-left">
-                      <el-input
-                        class="input_width_lg"
-                        placeholder="请输入试卷类型"
-                        v-model="examPaper.groupCode"
-                        disabled
-                      ></el-input>
-                    </el-form-item>
-                    <el-button
-                      type="primary"
-                      v-if="extractConfig.examType != 'TRADITION'"
-                      @click="addOnLinePaper(examPaper.groupCode)"
-                      ><i class="el-icon-plus"></i> 新增试卷
-                    </el-button>
-                  </el-col>
-                  <el-col
-                    :span="20"
-                    :offset="2"
-                    v-for="(paperInfo, index) in examPaper.paperInfoList"
-                    :key="paperInfo.selectedPaperId"
-                  >
-                    <el-form-item>
-                      <span>试卷选定</span>
-                      <el-select
-                        filterable
-                        v-model="paperInfo.paper.id"
-                        placeholder="请选择"
-                        @change="searchAudioTimeConfig"
-                        class="select_width_lg"
-                      >
-                        <el-option
-                          v-for="item in paperList"
-                          :label="item.name"
-                          :value="item.id"
-                          :key="item.id"
-                        >
-                        </el-option>
-                      </el-select>
-                      <span>选取几率</span>
-                      <span>
-                        <el-input
-                          class="input_width_sms"
-                          v-model="paperInfo.weight"
-                          :disabled="extractConfig.examType === 'TRADITION'"
-                        ></el-input
-                        >%
-                        <i
-                          class="el-icon-delete"
-                          v-if="index > 0"
-                          @click.prevent="
-                            removePaperInfo(examPaper.groupCode, paperInfo)
-                          "
-                        ></i>
-                      </span>
-                      <span :class="'errorMsg_' + num + '_' + index"></span>
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-              </el-tab-pane>
-            </el-tabs>
-            <div>
-              <el-tabs v-model="tabs">
-                <el-tab-pane label="步骤三:随机设定" name="first">
-                  <el-form-item
-                    label="客观题小题乱序"
-                    prop="scrambling_the_question_order"
-                  >
-                    <el-radio-group
-                      class="pull_right_sm"
-                      v-model="extractConfig.scrambling_the_question_order"
-                    >
-                      <el-radio :label="1">开启</el-radio>
-                      <el-radio :label="0">关闭</el-radio>
-                    </el-radio-group>
-                  </el-form-item>
-                  <br />
-                  <el-form-item
-                    label="客观题选项乱序"
-                    prop="scrambling_the_option_order"
-                  >
-                    <el-radio-group
-                      class="pull_right_sm"
-                      v-model="extractConfig.scrambling_the_option_order"
-                    >
-                      <el-radio :label="1">开启</el-radio>
-                      <el-radio :label="0">关闭</el-radio>
-                    </el-radio-group>
-                  </el-form-item>
-                </el-tab-pane>
-              </el-tabs>
-            </div>
-            <div
-              style="padding: 5px;"
-              v-show="extractConfig.examType != 'PRACTICE'"
-            >
-              <el-tabs v-model="tabs">
-                <el-tab-pane label="步骤四:音频播放次数设置" name="first">
-                  <el-row
-                    class="row_header_word"
-                    v-show="audioTimeConfigList.length > 0"
-                  >
-                    <el-col :span="4" :offset="1">试卷类型</el-col>
-                    <el-col :span="4">试卷名称</el-col>
-                    <el-col :span="3">大题号</el-col>
-                    <el-col :span="3">小题号</el-col>
-                    <el-col :span="4">播放次数</el-col>
-                  </el-row>
-                  <el-row
-                    v-for="(audioTimeConfig, index) in audioTimeConfigList"
-                    class="margin-top-10"
-                    :key="index"
-                  >
-                    <el-col :span="4" :offset="1">
-                      {{ audioTimeConfig.groupCode }}
-                    </el-col>
-                    <el-col :span="4">
-                      {{ audioTimeConfig.paper.name }}
-                    </el-col>
-                    <el-col :span="3">
-                      {{ audioTimeConfig.paperDetailUnit.paperDetail.number }}
-                    </el-col>
-                    <el-col :span="3">
-                      {{ audioTimeConfig.paperDetailUnit.number }}
-                    </el-col>
-                    <el-col :span="4">
-                      <el-input
-                        class="input_width_ss"
-                        size="small"
-                        v-model="audioTimeConfig.playTime"
-                        >次
-                      </el-input>
-                    </el-col>
-                  </el-row>
-                  <el-row v-show="audioTimeConfigList.length == 0">
-                    <el-col :span="18" :offset="1"> 无音频试题 </el-col>
-                  </el-row>
-                </el-tab-pane>
-              </el-tabs>
-            </div>
-            <div>
-              <el-tabs v-model="tabs">
-                <el-row>
-                  <el-col>
-                    <el-form-item label="是否生成文件">
-                      <el-radio-group v-model="isbuildFile">
-                        <el-radio label="1">是</el-radio>
-                        <el-radio label="0">否</el-radio>
-                      </el-radio-group>
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-                <el-row :gutter="20">
-                  <el-col :span="12" :offset="1">
-                    <el-button type="primary" @click="submitForm">
-                      保存
-                    </el-button>
-                    <el-button @click="back">返 回</el-button>
-                  </el-col>
-                </el-row>
-              </el-tabs>
-            </div>
-          </el-form>
+              </el-col>
+            </el-row>
+            <el-row :gutter="20">
+              <el-col :span="12" :offset="1">
+                <el-button type="primary" @click="submitForm"> 保存 </el-button>
+                <el-button @click="back">返 回</el-button>
+              </el-col>
+            </el-row>
+          </el-tabs>
         </div>
-      </div>
-    </section>
-  </div>
+      </el-form>
+    </div>
+  </section>
 </template>
 <script>
 import { EXAM_WORK_API, QUESTION_API } from "@/constants/constants";
 import { mapState } from "vuex";
 import _ from "lodash";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       loading: false,

+ 34 - 20
src/modules/questions/views/ExtractPaperRule.vue

@@ -1,5 +1,8 @@
 <template>
   <section class="content">
+    <div v-show="isClear == 1">
+      <LinkTitlesCustom :currentPaths="['考试管理', '调卷规则']" />
+    </div>
     <!-- 正文信息 -->
     <div class="box-body">
       <el-form
@@ -261,7 +264,9 @@ import { CORE_API, EXAM_WORK_API, QUESTION_API } from "@/constants/constants";
 import { LEVEL_TYPE } from "../constants/constants";
 import { mapState } from "vuex";
 import _ from "lodash";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       isClear: 0,
@@ -600,8 +605,32 @@ export default {
     },
     //清空课程列表
     getExamCourses() {
-      console.log("clean");
       this.formSearch.courseNo = "";
+    },
+    initVue() {
+      this.isClear = this.$route.params.isClear;
+      if (this.isClear == 0 || !this.isClear) {
+        this.removeItem();
+        //查询所有考试
+        this.getExams("");
+        this.formSearch = {
+          examId: "",
+          courseNo: ""
+        };
+      } else {
+        this.formSearch.courseNo =
+          sessionStorage.getItem("extract_paper_courseNo") == "null"
+            ? ""
+            : sessionStorage.getItem("extract_paper_courseNo");
+        this.formSearch.examId = parseInt(
+          sessionStorage.getItem("extract_paper_examId")
+        );
+        this.currentPage =
+          sessionStorage.getItem("extract_paper_currentPage") == null
+            ? 1
+            : parseInt(sessionStorage.getItem("extract_paper_currentPage"));
+        this.initialize(this.formSearch.examId);
+      }
     }
   },
   computed: {
@@ -619,26 +648,11 @@ export default {
       return courseList;
     }
   },
+  watch: {
+    $route: "initVue"
+  },
   created() {
-    this.isClear = this.$route.params.isClear;
-    if (this.isClear == 0 || !this.isClear) {
-      this.removeItem();
-      //查询所有考试
-      this.getExams("");
-    } else {
-      this.formSearch.courseNo =
-        sessionStorage.getItem("extract_paper_courseNo") == "null"
-          ? ""
-          : sessionStorage.getItem("extract_paper_courseNo");
-      this.formSearch.examId = parseInt(
-        sessionStorage.getItem("extract_paper_examId")
-      );
-      this.currentPage =
-        sessionStorage.getItem("extract_paper_currentPage") == null
-          ? 1
-          : parseInt(sessionStorage.getItem("extract_paper_currentPage"));
-      this.initialize(this.formSearch.examId);
-    }
+    this.initVue();
   }
 };
 </script>

+ 33 - 40
src/modules/questions/views/GenPaper.vue

@@ -1,5 +1,8 @@
 <template>
   <section class="content">
+    <div v-show="isClear == 1">
+      <LinkTitlesCustom :currentPaths="['题库管理 ', '考试试卷管理']" />
+    </div>
     <div class="box-body">
       <el-form
         :inline="true"
@@ -309,7 +312,9 @@
 import { CORE_API, QUESTION_API, EXAM_WORK_API } from "@/constants/constants";
 import { LEVEL_TYPE } from "../constants/constants";
 import { mapState } from "vuex";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       isClear: 0,
@@ -381,7 +386,6 @@ export default {
     genPaperDetail() {
       var courseNo = this.formSearch.courseNo;
       this.getCourseName(courseNo);
-      var courseName = this.formSearch.courseName;
       var level = this.formSearch.level;
       if (!courseNo) {
         this.$notify({
@@ -389,14 +393,8 @@ export default {
           type: "error"
         });
       } else {
-        sessionStorage.setItem("gen_paper_courseNo", this.formSearch.courseNo);
-        sessionStorage.setItem("gen_paper_name", this.formSearch.name);
-        sessionStorage.setItem(
-          "gen_paper_specialtyNo",
-          this.formSearch.specialtyNo
-        );
+        sessionStorage.setItem("gen_paper", JSON.stringify(this.formSearch));
         sessionStorage.setItem("gen_paper_currentPage", this.currentPage);
-        sessionStorage.setItem("gen_paper_courseName", courseName);
         this.$router.push({
           path: "/questions/gen_paper_detail/" + courseNo + "/" + level
         });
@@ -411,7 +409,6 @@ export default {
         if (course.code == courseNo) {
           this.formSearch.courseName = course.name;
           this.formSearch.level = course.level;
-          console.log(course.level);
         }
       }
     },
@@ -421,12 +418,7 @@ export default {
       );
     },
     editGenPaper(row) {
-      sessionStorage.setItem("gen_paper_courseNo", this.formSearch.courseNo);
-      sessionStorage.setItem("gen_paper_name", this.formSearch.name);
-      sessionStorage.setItem(
-        "gen_paper_specialtyNo",
-        this.formSearch.specialtyNo
-      );
+      sessionStorage.setItem("gen_paper", JSON.stringify(this.formSearch));
       sessionStorage.setItem("gen_paper_currentPage", this.currentPage);
       this.$router.push({
         path: "/edit_paper/" + row.id + "/gen_paper"
@@ -608,9 +600,7 @@ export default {
       }
     },
     removeItem() {
-      sessionStorage.removeItem("gen_paper_courseNo");
-      sessionStorage.removeItem("gen_paper_name");
-      sessionStorage.removeItem("gen_paper_specialtyNo");
+      sessionStorage.removeItem("gen_paper");
       sessionStorage.removeItem("gen_paper_currentPage");
     },
     previewPDF2(row) {
@@ -692,6 +682,26 @@ export default {
         .then(response => {
           this.Org = response.data;
         });
+    },
+    initVue() {
+      this.isClear = this.$route.params.isClear;
+      if (this.isClear == 0 || !this.isClear) {
+        this.removeItem();
+        this.formSearch = {
+          courseNo: "",
+          courseName: "",
+          level: "",
+          name: ""
+        };
+      } else {
+        this.formSearch = JSON.parse(sessionStorage.getItem("gen_paper"));
+        this.currentPage =
+          sessionStorage.getItem("gen_paper_currentPage") == null
+            ? 1
+            : parseInt(sessionStorage.getItem("gen_paper_currentPage"));
+      }
+      this.getCourses(this.formSearch.courseNo);
+      this.searchGenPaper();
     }
   },
   computed: {
@@ -722,29 +732,12 @@ export default {
     },
     ...mapState({ user: state => state.user })
   },
+  watch: {
+    $route: "initVue"
+  },
   created() {
-    this.isClear = this.$route.params.isClear;
-    if (this.isClear == 0 || !this.isClear) {
-      this.removeItem();
-    } else {
-      this.formSearch.courseNo =
-        sessionStorage.getItem("gen_paper_courseNo") == "null"
-          ? ""
-          : sessionStorage.getItem("gen_paper_courseNo");
-      this.formSearch.specialtyNo =
-        sessionStorage.getItem("gen_paper_specialtyNo") == "null"
-          ? ""
-          : sessionStorage.getItem("gen_paper_specialtyNo");
-      this.formSearch.name =
-        sessionStorage.getItem("gen_paper_name") == "null"
-          ? ""
-          : sessionStorage.getItem("gen_paper_name");
-      this.currentPage =
-        sessionStorage.getItem("gen_paper_currentPage") == null
-          ? 1
-          : parseInt(sessionStorage.getItem("gen_paper_currentPage"));
-    }
-    this.searchGenPaper();
+    this.initVue();
+
     this.searchExamList();
     this.searchOrgName();
   }

+ 2 - 3
src/modules/questions/views/GenPaperDetail.vue

@@ -890,7 +890,7 @@ export default {
       this.searchPaper();
     },
     back() {
-      this.$router.push({ path: "/index/gen_paper/1" });
+      this.$router.push({ path: "/questions/gen_paper/1" });
     },
     removePaper(id) {
       for (let [index, paper] of this.selectPapers.entries()) {
@@ -1140,9 +1140,8 @@ export default {
   },
   created() {
     this.genPaper.courseNo = this.$route.params.courseNo;
-    this.genPaper.courseName = sessionStorage.getItem("gen_paper_courseName");
+    this.genPaper.courseName = JSON.parse(sessionStorage.getItem("gen_paper")).courseName;
     this.genPaper.level = this.$route.params.level;
-    console.log(this.$route.params.level);
     this.searchPaper();
     this.getCoursePropertyList();
   }

+ 33 - 35
src/modules/questions/views/ImportPaper.vue

@@ -1,5 +1,9 @@
 <template>
   <section class="content">
+    <div v-show="isClear == 1">
+      <LinkTitlesCustom :currentPaths="['题库管理 ', '导入试卷管理']" />
+    </div>
+    <!-- 正文信息 -->
     <div class="box-body">
       <el-form
         :inline="true"
@@ -322,14 +326,15 @@
 import { CORE_API, QUESTION_API } from "@/constants/constants";
 import { LEVEL_TYPE, PUBLICITY_LIST } from "../constants/constants";
 import { mapState } from "vuex";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
+  components: { LinkTitlesCustom },
   data() {
     return {
       courseLoading: false,
       quesLoading: false,
       formSearch: {
-        courseNo: null,
-        specialtyNo: null,
+        courseNo: "",
         level: "",
         name: ""
       },
@@ -378,9 +383,6 @@ export default {
     };
   },
   methods: {
-    aaa() {
-      console.log("aaa");
-    },
     searchImportPaper() {
       this.loading = true;
       var url =
@@ -396,11 +398,8 @@ export default {
       this.searchImportPaper();
     },
     editImportPaper(row) {
-      sessionStorage.setItem("import_paper_courseNo", this.formSearch.courseNo);
-      sessionStorage.setItem(
-        "import_paper_specialtyNo",
-        this.formSearch.specialtyNo
-      );
+      //缓存查询对象
+      sessionStorage.setItem("import_paper", JSON.stringify(this.formSearch));
       sessionStorage.setItem("import_paper_currentPage", this.currentPage);
       this.$router.push({
         path: "/edit_paper/" + row.id + "/import_paper"
@@ -469,7 +468,6 @@ export default {
     },
     //导入试卷
     impPaper() {
-      console.log("导入试卷新页面!");
       this.$router.push({
         path: "/questions/import_paper_info"
       });
@@ -574,8 +572,7 @@ export default {
       });
     },
     removeItem() {
-      sessionStorage.removeItem("import_paper_courseNo");
-      sessionStorage.removeItem("import_paper_specialtyNo");
+      sessionStorage.removeItem("import_paper");
       sessionStorage.removeItem("import_paper_currentPage");
     },
     expQuesType() {
@@ -731,6 +728,25 @@ export default {
           this.quesLoading = false;
           this.closePropertyDialog();
         });
+    },
+    initVue() {
+      this.isClear = this.$route.params.isClear;
+      if (this.isClear == 0 || !this.isClear) {
+        this.removeItem();
+        this.formSearch = {
+          courseNo: "",
+          level: "",
+          name: ""
+        };
+      } else {
+        this.formSearch = JSON.parse(sessionStorage.getItem("import_paper"));
+        this.currentPage =
+          sessionStorage.getItem("import_paper_currentPage") == null
+            ? 1
+            : parseInt(sessionStorage.getItem("import_paper_currentPage"));
+      }
+      this.getCourses(this.formSearch.courseNo);
+      this.searchImportPaper();
     }
   },
   computed: {
@@ -756,29 +772,11 @@ export default {
     },
     ...mapState({ user: state => state.user })
   },
+  watch: {
+    $route: "initVue"
+  },
   created() {
-    this.isClear = this.$route.params.isClear;
-    if (this.isClear == 0 || !this.isClear) {
-      this.removeItem();
-    } else {
-      console.log(
-        "sessionStorage.getItem('import_paper_specialtyNo'):",
-        sessionStorage.getItem("import_paper_specialtyNo")
-      );
-      this.formSearch.courseNo =
-        sessionStorage.getItem("import_paper_courseNo") == "null"
-          ? ""
-          : sessionStorage.getItem("import_paper_courseNo");
-      this.formSearch.specialtyNo =
-        sessionStorage.getItem("import_paper_specialtyNo") == "null"
-          ? ""
-          : sessionStorage.getItem("import_paper_specialtyNo");
-      this.currentPage =
-        sessionStorage.getItem("import_paper_currentPage") == null
-          ? 1
-          : parseInt(sessionStorage.getItem("import_paper_currentPage"));
-    }
-    this.searchImportPaper();
+    this.initVue();
   }
 };
 </script>

+ 0 - 1
src/modules/questions/views/InsertPaperStructure.vue

@@ -256,7 +256,6 @@ export default {
       var paperStructStorge = sessionStorage.getItem("paperStruct");
       if (typeof paperStructStorge == "string") {
         var paperStruct = JSON.parse(paperStructStorge);
-        console.log(paperStruct);
         this.paperStruct = paperStruct;
         this.paperDetailStructs = paperStruct.paperDetailStructs;
       }

+ 1 - 7
src/modules/questions/views/PaperStructure.vue

@@ -343,9 +343,9 @@ export default {
           sessionStorage.getItem("paper_stucture_currentPage")
         );
       }
+      this.searchPaperStructs();
     }
   },
-
   computed: {
     selectedIds() {
       var selectedIdsStr = "";
@@ -369,17 +369,11 @@ export default {
     }
   },
   watch: {
-    // $route() {
-    //   //this.initVue();
-
-    // }
     $route: "initVue"
   },
   created() {
-    console.log("aaa");
     this.initVue();
     this.removeItem();
-    this.searchPaperStructs();
   }
 };
 </script>