Parcourir la source

Merge branch 'master' of http://git.qmth.com.cn/ExamCloud-3/examcloud-web-admin

chenken il y a 6 ans
Parent
commit
db710212a5
32 fichiers modifiés avec 535 ajouts et 447 suppressions
  1. 4 9
      src/modules/basic/view/campus.vue
  2. 110 108
      src/modules/basic/view/privilege_tree.vue
  3. 5 10
      src/modules/basic/view/role_privilege_settings.vue
  4. 9 15
      src/modules/basic/view/user.vue
  5. 29 36
      src/modules/examwork/view/examStudent.vue
  6. 1 1
      src/modules/examwork/view/examStudentImport.vue
  7. 15 1
      src/modules/examwork/view/onlineExam.vue
  8. 8 13
      src/modules/examwork/view/student.vue
  9. 1 1
      src/modules/examwork/view/traditionExam.vue
  10. 5 3
      src/modules/marking/views/MarkPaperCheck.vue
  11. 1 1
      src/modules/marking/views/MarkSettingMain.vue
  12. 6 6
      src/modules/marking/views/MarkSettingWork.vue
  13. 13 6
      src/modules/marking/views/MarkWork.vue
  14. 5 3
      src/modules/marking/views/MarkWorkOverview.vue
  15. 5 3
      src/modules/marking/views/Marker.vue
  16. 34 29
      src/modules/marking/views/TpScoreBoard.vue
  17. 0 11
      src/modules/portal/views/home/Home.vue
  18. 8 0
      src/modules/questions/styles/Common.css
  19. 3 1
      src/modules/questions/styles/EditPaper.css
  20. 1 1
      src/modules/questions/views/EditOtherQuestion.vue
  21. 40 25
      src/modules/questions/views/EditPaper.vue
  22. 1 1
      src/modules/questions/views/EditSelectQuestion.vue
  23. 19 1
      src/modules/questions/views/ExportStructure.vue
  24. 0 6
      src/modules/questions/views/ExtractPaperInfo.vue
  25. 26 12
      src/modules/questions/views/GenPaper.vue
  26. 0 1
      src/modules/questions/views/ImportPaper.vue
  27. 6 4
      src/modules/questions/views/ImportPaperInfo.vue
  28. 11 0
      src/modules/questions/views/InsertBluePaperStructure.vue
  29. 9 0
      src/modules/questions/views/InsertPaperStructure.vue
  30. 1 1
      src/modules/questions/views/InsertPaperStructureInfo.vue
  31. 118 125
      src/modules/questions/views/InsertPaperTitle.vue
  32. 41 13
      src/modules/questions/views/Question.vue

+ 4 - 9
src/modules/basic/view/campus.vue

@@ -9,7 +9,7 @@
       >
         <!-- 表单 -->
         <el-form inline :model="formSearch">
-          <el-form-item label="顶级机构">
+          <el-form-item v-if="isSuperAdmin" label="学校">
             <el-select
               v-model="formSearch.parentId"
               placeholder="请选择"
@@ -348,7 +348,6 @@ export default {
   name: "Campus",
   data() {
     return {
-      isSuperAdmin: false,
       paginationShow: false,
       rootOrgList: [],
       formSearch: {
@@ -412,6 +411,9 @@ export default {
     },
     noBatchSelected() {
       return this.selectedOrgIds.length === 0;
+    },
+    isSuperAdmin() {
+      return this.user.roleList.some(role => role.roleCode == "SUPER_ADMIN");
     }
   },
   methods: {
@@ -701,13 +703,6 @@ export default {
         this.user.token;
     },
     init() {
-      for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          this.isSuperAdmin = true;
-          break;
-        }
-      }
-
       this.$httpWithMsg.get(CORE_API + "/org/getRootOrgList").then(response => {
         this.rootOrgList = response.data;
         if (this.formSearch.parentId === null)

+ 110 - 108
src/modules/basic/view/privilege_tree.vue

@@ -21,69 +21,81 @@
           </div>
 
           <!-- 新增权限 -->
-          <el-dialog title="新增权限" :visible.sync="addingDialog.show">
+          <el-dialog
+            title="新增权限"
+            width="450px"
+            :visible.sync="addingDialog.show"
+          >
             <el-form
               :model="addingDialog.privilege"
+              inline
+              inline-message
               ref="addingForm"
               label-width="100px"
               :rules="rules"
             >
               <el-form-item label="父权限名称" prop="parentName">
-                <el-col>
-                  <el-input
-                    v-model="addingDialog.parentName"
-                    :readonly="true"
-                  ></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.parentName"
+                  disabled
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="权限名称" prop="name">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.name"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.name"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="权限编码" prop="code">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.code"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.code"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="描述" prop="description">
-                <el-col>
-                  <el-input
-                    v-model="addingDialog.privilege.description"
-                  ></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.description"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="权重" prop="weight">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.weight"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.weight"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性1">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.ext1"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.ext1"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性2">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.ext2"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.ext2"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性3">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.ext3"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.ext3"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性4">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.ext4"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.ext4"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性5">
-                <el-col>
-                  <el-input v-model="addingDialog.privilege.ext5"></el-input>
-                </el-col>
+                <el-input
+                  v-model="addingDialog.privilege.ext5"
+                  class="input_width"
+                />
               </el-form-item>
-              <el-form-item>
+              <el-form-item class="d-flex justify-content-center">
                 <el-button type="primary" @click="addPrivilege">确定</el-button>
                 <el-button @click="addingDialog.show = false">取消</el-button>
               </el-form-item>
@@ -91,64 +103,75 @@
           </el-dialog>
 
           <!-- 修改权限 -->
-          <el-dialog title="修改权限" :visible.sync="updateDialog.show">
+          <el-dialog
+            title="修改权限"
+            width="450px"
+            :visible.sync="updateDialog.show"
+          >
             <el-form
               :model="updateDialog.privilege"
+              inline
+              inline-message
               ref="updateForm"
               label-width="100px"
               :rules="rules"
             >
               <el-form-item label="权限名称" prop="name">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.name"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.name"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="权限编码" prop="code">
-                <el-col>
-                  <el-input
-                    v-model="updateDialog.privilege.code"
-                    :readonly="true"
-                  ></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.code"
+                  disabled
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="描述" prop="description">
-                <el-col>
-                  <el-input
-                    v-model="updateDialog.privilege.description"
-                  ></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.description"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="权重" prop="weight">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.weight"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.weight"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性1">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.ext1"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.ext1"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性2">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.ext2"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.ext2"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性3">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.ext3"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.ext3"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性4">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.ext4"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.ext4"
+                  class="input_width"
+                />
               </el-form-item>
               <el-form-item label="属性5">
-                <el-col>
-                  <el-input v-model="updateDialog.privilege.ext5"></el-input>
-                </el-col>
+                <el-input
+                  v-model="updateDialog.privilege.ext5"
+                  class="input_width"
+                />
               </el-form-item>
-              <el-form-item>
+              <el-form-item class="d-flex justify-content-center">
                 <el-button type="primary" @click="updatePrivilege"
                   >确定</el-button
                 >
@@ -162,77 +185,53 @@
             <el-form :model="showDialog.privilege" label-width="100px">
               <el-form-item label="权限名称">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.name"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.name" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="权限编码">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.code"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.code" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="描述">
                 <el-col>
                   <el-input
                     v-model="showDialog.privilege.description"
-                    :readonly="true"
-                  ></el-input>
+                    disabled
+                  />
                 </el-col>
               </el-form-item>
               <el-form-item label="权重">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.weight"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.weight" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="属性1">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.ext1"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.ext1" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="属性2">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.ext2"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.ext2" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="属性3">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.ext3"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.ext3" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="属性4">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.ext4"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.ext4" disabled />
                 </el-col>
               </el-form-item>
               <el-form-item label="属性5">
                 <el-col>
-                  <el-input
-                    v-model="showDialog.privilege.ext5"
-                    :readonly="true"
-                  ></el-input>
+                  <el-input v-model="showDialog.privilege.ext5" disabled />
                 </el-col>
               </el-form-item>
-              <el-form-item>
+              <el-form-item class="d-flex justify-content-center">
                 <el-button @click="showDialog.show = false">关闭</el-button>
               </el-form-item>
             </el-form>
@@ -426,7 +425,6 @@ export default {
             });
         },
         openUpdateDialog(store, data) {
-            console.log(data);
             this.store = store;
             this.data = data;
             this.getPrivilege(data.id, "for-update");
@@ -547,4 +545,8 @@ export default {
 };
 </script>
 
-<style scoped></style>
+<style scoped>
+.input_width {
+  width: 200px;
+}
+</style>

+ 5 - 10
src/modules/basic/view/role_privilege_settings.vue

@@ -5,7 +5,7 @@
         <!-- 选择 -->
         <el-form :inline="true" :model="form" label-position="right">
           <el-row>
-            <el-form-item label="顶级机构" class="pull-left">
+            <el-form-item label="学校" class="pull-left">
               <el-select
                 class="input_width_lg"
                 v-model="form.orgId"
@@ -91,7 +91,6 @@ export default {
   data() {
     return {
       completed: false,
-      isSuperAdmin: false,
       form: {
         orgId: null,
         roleId: null,
@@ -111,18 +110,14 @@ export default {
     };
   },
   computed: {
-    ...mapState({ user: state => state.user })
+    ...mapState({ user: state => state.user }),
+    isSuperAdmin() {
+      return this.user.roleList.some(role => role.roleCode == "SUPER_ADMIN");
+    }
   },
   methods: {
     /*初始化*/
     init() {
-      for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          this.isSuperAdmin = true;
-          break;
-        }
-      }
-
       var url1 = CORE_API + "/org/getRootOrgList";
       var url2 =
         CORE_API + "/rolePrivilege/getRoles?includeSuperAdmin=" + false;

+ 9 - 15
src/modules/basic/view/user.vue

@@ -7,8 +7,8 @@
         element-loading-text="请稍后..."
       >
         <!-- 搜索 -->
-        <el-form inline :model="searchForm" label-width="70px">
-          <el-form-item label="顶级机构">
+        <el-form inline :model="searchForm">
+          <el-form-item v-if="isSuperAdmin" label="学校">
             <el-select
               v-model="searchForm.rootOrgId"
               placeholder="请选择"
@@ -53,7 +53,6 @@
               class="input_width"
             />
           </el-form-item>
-          <div></div>
           <el-form-item>
             <el-button
               size="small"
@@ -135,7 +134,7 @@
               </el-form-item>
             </el-row>
             <el-row>
-              <el-form-item label="顶级机构" prop="rootOrgId">
+              <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
                 <el-select
                   class="input_width_lg"
                   v-model="userForm.rootOrgId"
@@ -261,7 +260,7 @@
               </el-form-item>
             </el-row>
             <el-row>
-              <el-form-item label="顶级机构" prop="rootOrgId">
+              <el-form-item v-if="isSuperAdmin" label="学校" prop="rootOrgId">
                 <el-select
                   class="input_width_lg"
                   v-model="userForm.rootOrgId"
@@ -353,7 +352,7 @@
           <el-table-column prop="id" width="80" label="ID" />
           <el-table-column prop="name" width="120" label="姓名" />
           <el-table-column prop="loginName" width="100" label="登录名" />
-          <el-table-column prop="rootOrgName" label="顶级机构" />
+          <el-table-column prop="rootOrgName" label="学校" />
           <!-- <el-table-column prop="roleNamesStr" width="110" label="角色" /> -->
           <el-table-column width="120" label="角色">
             <span
@@ -479,7 +478,7 @@ export default {
   data() {
     var validateRootOrg = (rule, value, callback) => {
       if (0 != value && !value) {
-        callback(new Error("请选择顶级机构"));
+        callback(new Error("请选择学校"));
       } else {
         callback();
       }
@@ -494,7 +493,6 @@ export default {
     return {
       loading: false,
       orgLoading4InsertOrUpdate: false,
-      isSuperAdmin: false,
       roleList4Search: [],
       roleList4InsertOrUpdate: [],
       rootOrgList: [],
@@ -593,6 +591,9 @@ export default {
       return this.roleList4InsertOrUpdate.filter(
         item => item.roleCode != "SUPER_ADMIN"
       );
+    },
+    isSuperAdmin() {
+      return this.user.roleList.some(role => role.roleCode == "SUPER_ADMIN");
     }
   },
   methods: {
@@ -987,13 +988,6 @@ export default {
 
     /*初始化*/
     init() {
-      for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          this.isSuperAdmin = true;
-          break;
-        }
-      }
-
       this.searchForm.rootOrgId = this.user.rootOrgId;
       this.userForm.rootOrgId = this.user.rootOrgId;
 

+ 29 - 36
src/modules/examwork/view/examStudent.vue

@@ -715,10 +715,20 @@
               </span>
             </span>
           </el-table-column>
-          <el-table-column width="200" label="操作">
+          <el-table-column width="300" label="操作">
             <template slot-scope="scope">
               <div v-if="scope.row.locked">锁定中,请稍后操作</div>
               <div v-else>
+                <el-button
+                  size="mini"
+                  type="primary"
+                  plain
+                  :disabled="!scope.row.photoPath"
+                  icon="el-icon-picture"
+                  @click="showPhoto(scope.row)"
+                >
+                  查看照片
+                </el-button>
                 <el-button
                   v-if="rolePrivileges.update_examStudent"
                   size="mini"
@@ -730,7 +740,13 @@
                   编辑
                 </el-button>
 
-                <el-dropdown style="margin-left: 10px;">
+                <el-dropdown
+                  style="margin-left: 10px;"
+                  v-if="
+                    rolePrivileges.del_examStudent ||
+                      rolePrivileges.change_exam_student_availability
+                  "
+                >
                   <el-button type="primary" plain size="mini">
                     更多<i class="el-icon-arrow-down el-icon--right"></i>
                   </el-button>
@@ -745,17 +761,6 @@
                         >删除
                       </el-button></el-dropdown-item
                     >
-                    <el-dropdown-item>
-                      <el-button
-                        size="mini"
-                        type="primary"
-                        plain
-                        icon="el-icon-picture"
-                        @click="showPhoto(scope.row)"
-                      >
-                        查看照片
-                      </el-button>
-                    </el-dropdown-item>
                     <el-dropdown-item>
                       <el-button
                         v-if="
@@ -866,7 +871,6 @@ export default {
         update_examStudent: false,
         change_exam_student_availability: false
       },
-      isSuperAdmin: false,
       pureLC: false,
       lc_id: null,
       lc_code: null,
@@ -1143,24 +1147,16 @@ export default {
       this.photoDialog = false;
     },
     showPhoto(row) {
-      let url =
-        CORE_API +
-        "/student/getStudentInfo?rootOrgId=" +
-        row.rootOrgId +
-        "&studentId=" +
-        row.studentId;
-      this.$httpWithMsg.get(url).then(response => {
-        if (response.data.photoPath) {
-          this.photo.url = response.data.photoPath;
-          this.photoDialog = true;
-        } else {
-          this.$notify({
-            showClose: true,
-            message: "未上传照片",
-            type: "error"
-          });
-        }
-      });
+      if (row.photoPath) {
+        this.photo.url = row.photoPath;
+        this.photoDialog = true;
+      } else {
+        this.$notify({
+          showClose: true,
+          message: "未上传照片",
+          type: "error"
+        });
+      }
     },
     getExcelTitle(row) {
       return "第" + row + "行";
@@ -1673,10 +1669,7 @@ export default {
     },
     init() {
       for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          this.isSuperAdmin = true;
-          continue;
-        } else if (role.roleCode == "LC_USER") {
+        if (role.roleCode == "LC_USER") {
           this.pureLC = true;
           continue;
         }

+ 1 - 1
src/modules/examwork/view/examStudentImport.vue

@@ -110,7 +110,7 @@
             label="ID"
             sortable
           ></el-table-column>
-          <el-table-column prop="rootOrgName" label="顶级机构" sortable>
+          <el-table-column prop="rootOrgName" label="学校" sortable>
           </el-table-column>
           <el-table-column prop="examName" label="考试" sortable>
           </el-table-column>

+ 15 - 1
src/modules/examwork/view/onlineExam.vue

@@ -495,6 +495,19 @@
                   </el-form-item>
                 </el-row>
               </el-tab-pane>
+              <el-tab-pane label="其它" name="tab7">
+                <el-row>
+                  <el-form-item
+                    label="是否推送成绩"
+                    :label-width="style.label_width_tab7"
+                  >
+                    <el-radio-group v-model="form.properties.PUSH_SCORE">
+                      <el-radio label="true">是</el-radio>
+                      <el-radio label="false">否</el-radio>
+                    </el-radio-group>
+                  </el-form-item>
+                </el-row>
+              </el-tab-pane>
             </el-tabs>
           </el-form>
         </div>
@@ -782,7 +795,8 @@ export default {
         label_width_tab3: "120px",
         label_width_tab4: "170px",
         label_width_tab5: "80px",
-        label_width_tab6: "120px"
+        label_width_tab6: "120px",
+        label_width_tab7: "120px"
       },
       activeName: "tab1",
       toActiveName: null,

+ 8 - 13
src/modules/examwork/view/student.vue

@@ -7,9 +7,9 @@
           :model="formSearch"
           :inline="true"
           ref="formSearch"
-          label-width="100px"
+          label-width="70px"
         >
-          <el-form-item v-if="isSuperAdmin" label="顶级机构">
+          <el-form-item v-if="isSuperAdmin" label="学校">
             <el-select
               v-model="formSearch.rootOrgId"
               placeholder="请选择"
@@ -45,11 +45,11 @@
               class="input"
             ></el-input>
           </el-form-item>
-          <el-form-item label="是否上传照片">
+          <el-form-item label="照片状态">
             <el-select v-model="formSearch.hasPhoto" class="input">
               <el-option label="未选择" value="UNDEFINED"> </el-option>
-              <el-option label="" value="TRUE"> </el-option>
-              <el-option label="" value="FALSE"> </el-option>
+              <el-option label="已上传" value="TRUE"> </el-option>
+              <el-option label="未上传" value="FALSE"> </el-option>
             </el-select>
           </el-form-item>
           <el-form-item class="d-block">
@@ -489,7 +489,6 @@ export default {
         unbind_student_code: false,
         unbind_security_phone: false
       },
-      isSuperAdmin: false,
       rootOrgList: null,
       stuExamLoading: false,
       button: {},
@@ -566,6 +565,9 @@ export default {
     },
     noBatchSelected() {
       return this.selectedStuIds.length === 0;
+    },
+    isSuperAdmin() {
+      return this.user.roleList.some(role => role.roleCode == "SUPER_ADMIN");
     }
   },
   methods: {
@@ -910,13 +912,6 @@ export default {
     init() {
       this.initPrivileges();
 
-      for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          this.isSuperAdmin = true;
-          break;
-        }
-      }
-
       var url = CORE_API + "/org/getRootOrgList";
 
       this.$httpWithMsg.get(url).then(response => {

+ 1 - 1
src/modules/examwork/view/traditionExam.vue

@@ -241,4 +241,4 @@ export default {
 .input >>> .el-input__inner {
   -webkit-appearance: button;
 }
-</style>
+</style>

+ 5 - 3
src/modules/marking/views/MarkPaperCheck.vue

@@ -299,9 +299,11 @@ export default {
   },
   methods: {
     getMarkWorks() {
-      this.$http.get(DATA_PROCESS_API + "/markWorks?status=1").then(response => {
-        this.markWorkList = response.data;
-      });
+      this.$http
+        .get(DATA_PROCESS_API + "/markWorks?status=1")
+        .then(response => {
+          this.markWorkList = response.data;
+        });
     },
     //查询学习中心
     getOrgs(name) {

+ 1 - 1
src/modules/marking/views/MarkSettingMain.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <LinkTitlesCustom :currentPaths="['评卷工作','评卷设置', '设置列表']" />
+    <LinkTitlesCustom :currentPaths="['评卷工作', '评卷设置', '设置列表']" />
     <section class="content">
       <div
         class="box box-info"

+ 6 - 6
src/modules/marking/views/MarkSettingWork.vue

@@ -36,12 +36,12 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="进度" width="100">
-              <template slot-scope="scope">
-                <div>
-                  <span>{{ Number.parseFloat(scope.row.progress) }}%</span>
-                </div>
-              </template>
+            <el-table-column
+              label="进度(%)"
+              width="100"
+              prop="progress"
+              sortable
+            >
             </el-table-column>
             <el-table-column label="备注" width="100" prop="remark">
             </el-table-column>

+ 13 - 6
src/modules/marking/views/MarkWork.vue

@@ -58,12 +58,12 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="进度" width="100">
-              <template slot-scope="scope">
-                <div>
-                  <span>{{ Number.parseFloat(scope.row.progress) }}%</span>
-                </div>
-              </template>
+            <el-table-column
+              label="进度(%)"
+              width="100"
+              prop="progress"
+              sortable
+            >
             </el-table-column>
             <el-table-column label="备注" width="100">
               <template slot-scope="scope">
@@ -267,6 +267,13 @@ export default {
   },
   methods: {
     settingMarkWork(row) {
+      if (Number.parseInt(row.status) != 1) {
+        this.$notify({
+          message: "该评卷工作未完成,不能进行设置.",
+          type: "warning"
+        });
+        return;
+      }
       var url =
         "/marking/mark_setting_main/" +
         row.id +

+ 5 - 3
src/modules/marking/views/MarkWorkOverview.vue

@@ -361,9 +361,11 @@ export default {
       this.total = 0;
     },
     getMarkWorks() {
-      this.$http.get(DATA_PROCESS_API + "/markWorks?status=1").then(response => {
-        this.markWorkList = response.data;
-      });
+      this.$http
+        .get(DATA_PROCESS_API + "/markWorks?status=1")
+        .then(response => {
+          this.markWorkList = response.data;
+        });
     },
     getCourses() {
       this.$http

+ 5 - 3
src/modules/marking/views/Marker.vue

@@ -242,9 +242,11 @@ export default {
     },
     //获取创建成功的markWork列表
     getMarkWorks() {
-      this.$http.get(DATA_PROCESS_API + "/markWorks?status=1").then(response => {
-        this.markWorkList = response.data;
-      });
+      this.$http
+        .get(DATA_PROCESS_API + "/markWorks?status=1")
+        .then(response => {
+          this.markWorkList = response.data;
+        });
     },
     backFill() {
       var formData = this.$route.query;

+ 34 - 29
src/modules/marking/views/TpScoreBoard.vue

@@ -180,11 +180,11 @@
             id="subMarkBtn"
             class="submit-button"
             type="primary"
-            :loading="loading"
             size="small"
             @keydown.enter="submitMark"
             @click="submitMark"
             v-bind:round="true"
+            :loading="loading"
           >
             <span class="sub-btn">提</span> <span>交</span>
           </el-button>
@@ -238,14 +238,14 @@ export default {
       markDiff: false,
       curIndex: 0,
       steps: [],
-      loading: false,
       btnflag: false,
       textareaflag: false,
       tmpSignItem: this.signItem,
       tags: [],
       unusualType: "",
       scoreError: [],
-      itemScoreBtn: []
+      itemScoreBtn: [],
+      loading: false
     };
   },
   props: [
@@ -541,7 +541,7 @@ export default {
       }
       console.log("remarkValue: " + remarkValue);
       if (!this.markedResult.id) {
-        //正常提交清空
+        //正常提交情况
         console.log("提交resultItems", this.resultItems);
         this.$http
           .post(
@@ -578,40 +578,45 @@ export default {
               this.problemView = false;
               this.unusualType = "";
             },
-            response => {
+            error => {
               // 响应错误回调
-              console.log(response);
-              if (response.data.desc) {
-                var errorInfo = response.data.desc;
+              console.log(error);
+              if (error.response.data.desc) {
+                var errorInfo = error.response.data.desc;
                 if (errorInfo.includes("超时")) {
+                  this.$loading().close();
+                  this.loading = false;
                   this.$alert(
                     "该评卷任务已超时,请点击确定重新登录!",
                     "提示",
                     {
                       confirmButtonText: "确定",
                       callback: () => {
-                        var loginUrl = sessionStorage.getItem("loginUrl");
+                        console.log("sessionStorage", sessionStorage);
                         this.$http
                           .post(CORE_API + "/auth/logout")
-                          .then(response => {
-                            console.log(response);
+                          .then(() => {
+                            const orgId = this.user.rootOrgId;
                             this.USER_SIGNOUT();
-                            sessionStorage.clear();
-                            if (loginUrl) {
-                              window.location.href = loginUrl;
-                            } else {
-                              window.location.href = "about:blank";
-                            }
+                            window.name = "";
+                            this.$router.replace({
+                              path: "/login" + "?orgId=" + orgId
+                            });
                           })
                           .catch(response => {
-                            console.log(response);
-                            this.USER_SIGNOUT();
-                            sessionStorage.clear();
-                            if (loginUrl) {
-                              window.location.href = loginUrl;
-                            } else {
-                              window.location.href = "about:blank";
+                            const orgId = this.user.rootOrgId;
+                            if (response.status == 500) {
+                              this.$notify({
+                                showClose: true,
+                                message: response.data.desc,
+                                type: "error"
+                              });
                             }
+                            this.USER_SIGNOUT();
+                            window.name = "";
+                            this.$router.replace({
+                              path: "/login" + "?orgId=" + orgId
+                            });
                           });
                         return;
                       }
@@ -619,7 +624,7 @@ export default {
                   );
                 } else {
                   this.$notify({
-                    message: response.data.desc,
+                    message: error.response.data.desc,
                     type: "error"
                   });
                   this.$emit("submitMark");
@@ -659,12 +664,12 @@ export default {
             this.problemView = false;
             this.unusualType = "";
           },
-          response => {
+          error => {
             // 响应错误回调
-            console.log(response);
-            if (response.data.desc) {
+            console.log(error.response);
+            if (error.response.data.desc) {
               this.$notify({
-                message: response.data.desc,
+                message: error.response.data.desc,
                 type: "error"
               });
             } else {

+ 0 - 11
src/modules/portal/views/home/Home.vue

@@ -202,17 +202,6 @@ export default {
     resetForm() {
       this.$refs.passForm.resetFields();
     },
-    isSuperAdmin() {
-      if (!this.user.roleList) {
-        return false;
-      }
-      for (let role of this.user.roleList) {
-        if (role.roleCode == "SUPER_ADMIN") {
-          return true;
-        }
-      }
-      return false;
-    },
     logout() {
       this.$http
         .post(CORE_API + "/auth/logout")

+ 8 - 0
src/modules/questions/styles/Common.css

@@ -85,3 +85,11 @@
   margin-left: 15px;
   padding-top: 7px;
 }
+
+.margin_left_30 {
+  margin-left: 30%;
+}
+
+.margin_left_40 {
+  margin-left: 40%;
+}

+ 3 - 1
src/modules/questions/styles/EditPaper.css

@@ -83,8 +83,10 @@ small {
   font-size: 14px;
 }
 .paper {
-  width: 80%;
   margin: 0 auto;
+  background-color: white;
+  padding-left: 10%;
+  padding-right: 10%;
 }
 .btnDiv {
   height: 30px;

+ 1 - 1
src/modules/questions/views/EditOtherQuestion.vue

@@ -345,7 +345,7 @@ export default {
     },
     backToQuesList() {
       this.$router.push({
-        path: "/questions/question_list/0"
+        path: "/questions/question_list/1"
       });
     },
     //查询所有课程属性名

+ 40 - 25
src/modules/questions/views/EditPaper.vue

@@ -39,22 +39,20 @@
             <i class="el-icon-delete"></i> 删除
           </el-button>
           <el-button
-            type="info"
+            type="primary"
             :loading="duplicateLoading"
             @click="getreduplicateQuestions"
             size="small"
-          >
-            查重
+            ><i class="el-icon-zoom-in"></i> 查重
           </el-button>
           <el-button
             v-show="parentView == 'import_paper'"
-            type="warning"
+            type="primary"
             @click="openDialog"
             size="small"
-          >
-            上传音频文件
+            ><i class="el-icon-upload2"></i> 上传音频文件
           </el-button>
-          <el-button @click="back" size="small" type="primary"
+          <el-button @click="back" size="small"
             ><i class="el-icon-arrow-left"></i> 返回</el-button
           >
         </div>
@@ -292,6 +290,7 @@
     <div class="text-left">
       <!-- 编辑大题弹框 -->
       <el-dialog
+        width="360px"
         @close="closeQuesDialog"
         title="大题名称编辑"
         v-loading.body="detailLoading"
@@ -306,7 +305,10 @@
           <el-row :gutter="10">
             <el-col :xs="10" :sm="10" :md="10" :lg="10">
               <el-form-item label="大题名称" placeholder="大题名称">
-                <el-input v-model="editpaperDetail.name" />
+                <el-input
+                  class="dialog_input_width"
+                  v-model="editpaperDetail.name"
+                />
               </el-form-item>
             </el-col>
           </el-row>
@@ -583,23 +585,33 @@
               </el-row>
             </div>
           </div>
-          <div>
-            <el-form-item>
-              <el-button
-                @click="addQuesOption"
-                v-if="
-                  paper.paperType == 'IMPORT' &&
-                    (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
-                      quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION')
-                "
-              >
-                新增选项
-              </el-button>
-              <el-button type="primary" @click="savePaperDetailUnit()"
-                >保存</el-button
-              >
-              <el-button @click="closeQuesDialog">取消</el-button>
-            </el-form-item>
+          <div
+            :class="{
+              margin_left_30:
+                paper.paperType == 'IMPORT' &&
+                (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
+                  quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION'),
+              margin_left_40: !(
+                paper.paperType == 'IMPORT' &&
+                (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
+                  quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION')
+              )
+            }"
+          >
+            <el-button
+              type="primary"
+              @click="addQuesOption"
+              v-if="
+                paper.paperType == 'IMPORT' &&
+                  (quesModel.questionType == 'SINGLE_ANSWER_QUESTION' ||
+                    quesModel.questionType == 'MULTIPLE_ANSWER_QUESTION')
+              "
+              ><i class="el-icon-plus"></i> 新增选项
+            </el-button>
+            <el-button type="primary" @click="savePaperDetailUnit()"
+              >保存</el-button
+            >
+            <el-button @click="closeQuesDialog">取消</el-button>
           </div>
         </el-form>
       </el-dialog>
@@ -1623,5 +1635,8 @@ export default {
 .ck-toolbar {
   z-index: 9999;
 }
+#app {
+  background-color: white !important;
+}
 </style>
 <style scoped src="../styles/Common.css"></style>

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

@@ -441,7 +441,7 @@ export default {
     },
     backToQuesList() {
       this.$router.push({
-        path: "/questions/question_list/0"
+        path: "/questions/question_list/1"
       });
     },
     //查询所有课程属性名

+ 19 - 1
src/modules/questions/views/ExportStructure.vue

@@ -18,6 +18,7 @@
                 clearable
                 placeholder="请选择"
                 size="small"
+                @change="searchExams"
               >
                 <el-option
                   v-for="item in EXAM_TYPES"
@@ -438,6 +439,9 @@ export default {
       this.search();
     },
     search() {
+      if (this.formSearch.examType === "") {
+        this.formSearch.examType = null;
+      }
       this.tableData = [];
       this.loading = true;
       var url =
@@ -727,11 +731,25 @@ export default {
     //查询考试
     getExams(query) {
       query = query.trim();
+      var examType = this.formSearch.examType;
+      if (this.formSearch.examType == null) {
+        examType = "";
+      }
       this.$http
-        .get(EXAM_WORK_API + "/exam/queryByNameLike?name=" + query)
+        .get(
+          EXAM_WORK_API +
+            "/exam/queryByNameLike?name=" +
+            query +
+            "&examTypes=" +
+            examType
+        )
         .then(response => {
           this.examList = response.data;
         });
+    },
+    searchExams() {
+      this.formSearch.examId = null;
+      this.getExams("");
     }
   },
   computed: {

+ 0 - 6
src/modules/questions/views/ExtractPaperInfo.vue

@@ -552,12 +552,6 @@ export default {
               });
             }
           );
-      } else {
-        this.$notify({
-          message: "试卷类型没有制定试卷",
-          type: "error",
-          duration: 2000
-        });
       }
     },
     //音频播放次数校验

+ 26 - 12
src/modules/questions/views/GenPaper.vue

@@ -94,8 +94,16 @@
               size="small"
               type="primary"
               @click="openBatchExportPaperDialog"
+              :disabled="noBatchSelected"
               ><i class="el-icon-download"></i> 下载成卷</el-button
             >
+            <el-button
+              size="small"
+              type="primary"
+              @click="openPrints"
+              :disabled="noBatchSelected"
+              ><i class="el-icon-share"></i> 发送成卷</el-button
+            >
           </el-form-item>
         </el-row>
       </el-form>
@@ -370,7 +378,7 @@ export default {
       examList: [],
       Org: {},
       dialogModel: false,
-      rowId: "",
+      rowIds: [],
       isShowPrintExamPackage: false,
       isShowPrintExamPackagePassword: false,
       printExamPackagePassword: "",
@@ -431,7 +439,6 @@ export default {
       for (let course of this.courseList) {
         if (course.code == courseNo) {
           this.formSearch.courseName = course.name;
-          this.formSearch.level = course.level;
         }
       }
     },
@@ -632,7 +639,11 @@ export default {
     },
     openPrint(row) {
       this.dialogModel = true;
-      this.rowId = row.id;
+      this.rowIds.push(row.id);
+    },
+    openPrints() {
+      this.dialogModel = true;
+      this.rowIds = this.selectedPaperIds;
     },
     cancel(formData) {
       this.resetForm2(formData);
@@ -653,21 +664,24 @@ export default {
             }
           }
           if (orgId != "") {
-            this.$http.get(
-              QUESTION_API +
-                "/sendPrint/" +
-                this.rowId +
-                "/" +
-                this.printFrom.examId +
-                "/" +
-                orgId
-            );
+            for (let printPid of this.rowIds) {
+              this.$http.get(
+                QUESTION_API +
+                  "/sendPrint/" +
+                  printPid +
+                  "/" +
+                  this.printFrom.examId +
+                  "/" +
+                  orgId
+              );
+            }
             this.$notify({
               message: "已推送",
               type: "success"
             });
             this.resetForm2(formData);
             this.dialogModel = false;
+            this.rowIds = [];
           }
         } else {
           return false;

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

@@ -426,7 +426,6 @@ export default {
       for (let course of this.courseList) {
         if (course.code == courseNo) {
           this.formSearch.courseName = course.name;
-          this.formSearch.level = course.level;
         }
       }
     },

+ 6 - 4
src/modules/questions/views/ImportPaperInfo.vue

@@ -89,18 +89,20 @@
               :auto-upload="false"
               :multiple="false"
             >
-              <el-button slot="trigger" type="primary">选择文件</el-button>
+              <el-button slot="trigger" type="primary"
+                ><i class="el-icon-search"></i> 选择文件</el-button
+              >
               <el-button
                 style="margin-left:10px;"
                 type="primary"
                 @click="submitUpload"
-                >确认上传
+                ><i class="el-icon-check"></i> 确认上传
               </el-button>
               <el-button
                 style="margin-left: 10px;"
-                type="danger"
+                type="primary"
                 @click="removeFile"
-                >清空文件
+                ><i class="el-icon-refresh"></i> 清空文件
               </el-button>
               <div slot="tip" class="el-upload__tip">只能上传docx文件</div>
             </el-upload>

+ 11 - 0
src/modules/questions/views/InsertBluePaperStructure.vue

@@ -241,6 +241,7 @@ export default {
         name: "",
         totalScore: 0, //结构总分
         courseNo: "", //课程
+        courseName: "",
         coursePropertyId: "", //课程属性
         coursePropertyName: "", //课程属性名称
         paperDetailStructs: [],
@@ -287,6 +288,7 @@ export default {
       var blueStructStorge = sessionStorage.getItem("blueStruct");
       if (typeof blueStructStorge == "string") {
         var blueStruct = JSON.parse(blueStructStorge);
+        this.getCourses(blueStruct.courseName);
         this.blueStruct = blueStruct;
         this.$http
           .get(
@@ -542,6 +544,13 @@ export default {
         }
       }
     },
+    getCourseName(courseNo) {
+      for (let course of this.courseList) {
+        if (course.code == courseNo) {
+          this.blueStruct.courseName = course.name;
+        }
+      }
+    },
     //大题详情
     detailInfo(row) {
       if (!this.blueStruct.coursePropertyId) {
@@ -551,6 +560,7 @@ export default {
         });
         return false;
       }
+      this.getCourseName(this.blueStruct.courseNo);
       sessionStorage.setItem("blueStruct", JSON.stringify(this.blueStruct));
       this.$router.push({
         path:
@@ -600,6 +610,7 @@ export default {
     clearCourseProperty() {
       this.blueStruct.coursePropertyId = "";
       this.coursePropertyList = [];
+      this.getCoursePropertyList();
     },
     resetForm(formData) {
       this.paperDetailStructForm.name = "";

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

@@ -228,6 +228,7 @@ export default {
         totalScore: "",
         paperDetailStructs: [],
         courseNo: "ALL",
+        courseName: "",
         type: "EXACT", //试卷结构类型
         genPaperType: "COMMON", //组卷类型
         examRemark: ""
@@ -459,10 +460,18 @@ export default {
       }
       this.paperDetailStructDialog = true;
     },
+    getCourseName(courseNo) {
+      for (let course of this.courseList) {
+        if (course.code == courseNo) {
+          this.paperStruct.courseName = course.name;
+        }
+      }
+    },
     //添加小题
     insertTopicStruct(row) {
       let courseNo =
         this.paperStruct.courseNo === "" ? "all" : this.paperStruct.courseNo;
+      this.getCourseName(this.paperStruct.courseNo);
       sessionStorage.setItem("paperStruct", JSON.stringify(this.paperStruct));
       this.$router.push({
         path:

+ 1 - 1
src/modules/questions/views/InsertPaperStructureInfo.vue

@@ -460,7 +460,7 @@
               </el-col>
             </el-row>
             <el-row>
-              <div>
+              <div style="margin-left:45%">
                 <el-button
                   type="primary"
                   @click="editSubmitForm('paperUnitForm2')"

+ 118 - 125
src/modules/questions/views/InsertPaperTitle.vue

@@ -1,138 +1,131 @@
 <template>
   <section class="content">
-    <div class="box box-info box_width_lg">
-      <!-- 正文信息 -->
-      <div class="box-body">
-        <el-form
-          :inline="true"
-          :model="paperTitleForm"
-          label-width="150px"
-          class="demo-ruleForm"
-        >
-          <el-row>
-            <el-form-item label="课程名称(代码)" class="pull-left">
-              <el-select
-                class="dialog_input_width"
-                @change="searchGenPaper"
-                v-model="paperTitleForm.courseNo"
-                filterable
-                remote
-                placeholder="请输入课程名称(代码)"
-                :remote-method="queryCoursesByKeyword"
+    <!-- 正文信息 -->
+    <div class="box-body">
+      <el-form :inline="true" :model="paperTitleForm" label-width="150px">
+        <el-row>
+          <el-form-item label="课程名称(代码)" class="pull-left">
+            <el-select
+              class="dialog_input_width"
+              @change="searchGenPaper"
+              v-model="paperTitleForm.courseNo"
+              filterable
+              remote
+              placeholder="请输入课程名称(代码)"
+              :remote-method="queryCoursesByKeyword"
+            >
+              <el-option
+                v-for="item in courseInfoSelect"
+                :key="item.courseNo"
+                :label="item.courseInfo"
+                :value="item.courseNo"
               >
-                <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-row v-if="paperTitelDisable">
-            <el-form-item label="试卷名称" class="pull-left">
-              <el-select
-                class="dialog_input_width"
-                v-model="paperTitleForm.paperId"
-                filterable
-                placeholder="请选择"
-                @change="searchPaperDetail"
-                sytle="width:220px;"
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+        <el-row v-if="paperTitelDisable">
+          <el-form-item label="试卷名称" class="pull-left">
+            <el-select
+              class="dialog_input_width"
+              v-model="paperTitleForm.paperId"
+              filterable
+              placeholder="请选择"
+              @change="searchPaperDetail"
+              sytle="width:220px;"
+            >
+              <el-option
+                v-for="item in paperInfoSelect"
+                :label="item.name"
+                :value="item.id"
+                :key="item.id"
               >
-                <el-option
-                  v-for="item in paperInfoSelect"
-                  :label="item.name"
-                  :value="item.id"
-                  :key="item.id"
-                >
-                </el-option>
-              </el-select>
-              <span style="padding-left:5px;">
-                <el-button type="primary" @click="insertPaper"
-                  ><i class="el-icon-plus"></i> 新增试卷</el-button
-                >
-              </span>
-            </el-form-item>
-          </el-row>
-          <el-row v-if="paperDetailDisable">
-            <el-form-item label="试卷大题" class="pull-left">
-              <el-select
-                class="dialog_input_width"
-                v-model="paperTitleForm.paperDetailId"
-                filterable
-                placeholder="请选择"
+              </el-option>
+            </el-select>
+            <span style="padding-left:5px;">
+              <el-button type="primary" @click="insertPaper"
+                ><i class="el-icon-plus"></i> 新增试卷</el-button
               >
-                <el-option
-                  v-for="item in paperDetailInfoSelect"
-                  :label="item.name"
-                  :value="item.id"
-                  :key="item.id"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-row>
+            </span>
+          </el-form-item>
+        </el-row>
+        <el-row v-if="paperDetailDisable">
+          <el-form-item label="试卷大题" class="pull-left">
+            <el-select
+              class="dialog_input_width"
+              v-model="paperTitleForm.paperDetailId"
+              filterable
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in paperDetailInfoSelect"
+                :label="item.name"
+                :value="item.id"
+                :key="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="题型" class="pull-left">
+            <el-select
+              class="dialog_input_width"
+              v-model="paperTitleForm.value"
+              filterable
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in quesTypes"
+                :label="item.label"
+                :value="item.value"
+                :key="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label=" " class="pull-left">
+            <el-button
+              type="primary"
+              :disabled="nextDisabled"
+              @click="submitForm"
+              >下一步
+            </el-button>
+          </el-form-item>
+        </el-row>
+      </el-form>
+
+      <!-- 添加试卷弹出框 -->
+      <el-dialog title="新增试卷" :visible.sync="paperDialog" width="500px">
+        <el-form
+          :model="paperForm"
+          ref="paperForm"
+          :rules="rules"
+          label-position="right"
+          label-width="120px"
+          inline-message
+        >
           <el-row>
-            <el-form-item label="题型" class="pull-left">
-              <el-select
+            <el-form-item label="试卷名称" label-width="120px" prop="name">
+              <el-input
                 class="dialog_input_width"
-                v-model="paperTitleForm.value"
-                filterable
-                placeholder="请选择"
-              >
-                <el-option
-                  v-for="item in quesTypes"
-                  :label="item.label"
-                  :value="item.value"
-                  :key="item.id"
-                >
-                </el-option>
-              </el-select>
+                v-model="paperForm.name"
+                placeholder="请输入试卷名称"
+              ></el-input>
             </el-form-item>
           </el-row>
-          <el-row>
-            <el-form-item label=" " class="pull-left">
-              <el-button
-                type="primary"
-                :disabled="nextDisabled"
-                @click="submitForm"
-                >下一步
-              </el-button>
-            </el-form-item>
+          <el-row class="margin_top_10 margin_left_120">
+            <el-button type="primary" @click="submitPaperForm('paperForm')"
+              >保 存</el-button
+            >
+            <el-button @click="resetPaperForm('paperForm')"
+              ><i class="el-icon-refresh"></i> 重 置</el-button
+            >
           </el-row>
         </el-form>
-
-        <!-- 添加试卷弹出框 -->
-        <el-dialog title="新增试卷" :visible.sync="paperDialog" width="500px">
-          <el-form
-            :model="paperForm"
-            ref="paperForm"
-            :rules="rules"
-            label-position="right"
-            label-width="120px"
-            inline-message
-          >
-            <el-row>
-              <el-form-item label="试卷名称" label-width="120px" prop="name">
-                <el-input
-                  class="dialog_input_width"
-                  v-model="paperForm.name"
-                  placeholder="请输入试卷名称"
-                ></el-input>
-              </el-form-item>
-            </el-row>
-            <el-row class="margin_top_10 margin_left_120">
-              <el-button type="primary" @click="submitPaperForm('paperForm')"
-                >保 存</el-button
-              >
-              <el-button @click="resetPaperForm('paperForm')"
-                ><i class="el-icon-refresh"></i> 重 置</el-button
-              >
-            </el-row>
-          </el-form>
-        </el-dialog>
-      </div>
+      </el-dialog>
     </div>
   </section>
 </template>
@@ -257,7 +250,7 @@ export default {
               this.paperDialog = false;
             })
             .catch(error => {
-              this.$notify({ type: "error", message: error.body.msg });
+              this.$notify({ type: "error", message: error.response.data.msg });
               this.paperDialog = false;
             });
         } else {

+ 41 - 13
src/modules/questions/views/Question.vue

@@ -342,6 +342,7 @@ export default {
         questionType: "",
         courseNo: "",
         courseLevel: "",
+        courseName: "",
         publicity: "",
         coursePropertyName: "",
         firstPropertyId: "",
@@ -378,6 +379,7 @@ export default {
         questionType: "",
         courseNo: "",
         courseLevel: "",
+        courseName: "",
         publicity: "",
         coursePropertyName: "",
         firstPropertyId: "",
@@ -418,8 +420,16 @@ export default {
       this.currentPage = val;
       this.searchQues();
     },
+    getCourseName(courseNo) {
+      for (let course of this.courseList) {
+        if (course.code == courseNo) {
+          this.formSearch.courseName = course.name;
+        }
+      }
+    },
     //修改
     updateRow(row) {
+      this.getCourseName(this.formSearch.courseNo);
       //选择题:单选、多选
       if (
         row.questionType === "SINGLE_ANSWER_QUESTION" ||
@@ -661,6 +671,33 @@ export default {
             this.secondPropertyList = response.data;
           });
       }
+    },
+    initVue() {
+      this.isClear = this.$route.params.isClear;
+      if (this.isClear == 0 || !this.isClear) {
+        sessionStorage.removeItem("question");
+        sessionStorage.removeItem("question_currentPage");
+        this.formSearch = {
+          questionType: "",
+          courseNo: "",
+          courseLevel: "",
+          courseName: "",
+          publicity: "",
+          coursePropertyName: "",
+          firstPropertyId: "",
+          secondPropertyId: ""
+        };
+        this.currentPage = 1;
+      } else {
+        this.formSearch = JSON.parse(sessionStorage.getItem("question"));
+        this.currentPage = parseInt(
+          sessionStorage.getItem("question_currentPage")
+        );
+      }
+      if (this.formSearch.courseName) {
+        this.getCourses(this.formSearch.courseName);
+      }
+      this.searchQues();
     }
   },
   computed: {
@@ -702,21 +739,12 @@ export default {
       return true;
     }
   },
+  watch: {
+    $route: "initVue"
+  },
   //钩子函数
   created() {
-    this.isClear = this.$route.params.isClear;
-    if (this.isClear == 0 || !this.isClear) {
-      sessionStorage.removeItem("question");
-      sessionStorage.removeItem("question_currentPage");
-    } else {
-      this.formSearch = JSON.parse(sessionStorage.getItem("question"));
-      //this.formSearch.firstPropertyId = parseInt(formSearch.firstPropertyId);
-      //this.formSearch.secondPropertyId = parseInt(formSearch.secondPropertyId);
-      this.currentPage = parseInt(
-        sessionStorage.getItem("question_currentPage")
-      );
-    }
-    this.searchQues();
+    this.initVue();
   }
 };
 </script>