Bläddra i källkod

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

chenken 6 år sedan
förälder
incheckning
524d73336d
31 ändrade filer med 935 tillägg och 198 borttagningar
  1. 5 0
      src/modules/examwork/routes/routes.js
  2. 10 2
      src/modules/examwork/view/examInfo.vue
  3. 2 2
      src/modules/examwork/view/examStudent.vue
  4. 3 0
      src/modules/examwork/view/offlineExam.vue
  5. 3 0
      src/modules/examwork/view/onlineExam.vue
  6. 487 0
      src/modules/examwork/view/onlineExamOrgSettings.vue
  7. 4 1
      src/modules/examwork/view/practiceExam.vue
  8. 3 0
      src/modules/examwork/view/printExam.vue
  9. 3 3
      src/modules/examwork/view/student.vue
  10. 3 0
      src/modules/examwork/view/traditionExam.vue
  11. 5 4
      src/modules/marking/routes/routes.js
  12. 6 15
      src/modules/marking/views/CourseDetail.vue
  13. 74 47
      src/modules/marking/views/MarkPaperCheck.vue
  14. 1 3
      src/modules/marking/views/MarkSettingMain.vue
  15. 24 3
      src/modules/marking/views/MarkWork.vue
  16. 165 32
      src/modules/marking/views/MarkWorkOverview.vue
  17. 53 45
      src/modules/marking/views/Marker.vue
  18. 2 8
      src/modules/marking/views/MarkerDetail.vue
  19. 1 7
      src/modules/marking/views/ViewPaper.vue
  20. 1 0
      src/modules/portal/views/Login.vue
  21. 4 1
      src/modules/portal/views/home/LinkTitles.vue
  22. 3 3
      src/modules/portal/views/tips/Tips.vue
  23. 5 1
      src/modules/questions/views/BluePaperStructure.vue
  24. 9 5
      src/modules/questions/views/CourseProperty.vue
  25. 7 3
      src/modules/questions/views/ExportStructure.vue
  26. 5 2
      src/modules/questions/views/ExtractPaperInfo.vue
  27. 13 5
      src/modules/questions/views/ExtractPaperRule.vue
  28. 8 2
      src/modules/questions/views/GenPaper.vue
  29. 16 2
      src/modules/questions/views/ImportPaper.vue
  30. 5 1
      src/modules/questions/views/PaperStructure.vue
  31. 5 1
      src/modules/questions/views/Question.vue

+ 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 onlineExamOrgSettings from "../view/onlineExamOrgSettings.vue";
 import Tips from "../../portal/views/tips/Tips.vue";
 
 export default [
@@ -64,6 +65,10 @@ export default [
       {
         path: "offlineExamOrgSettings/:id",
         component: offlineExamOrgSettings
+      },
+      {
+        path: "onlineExamOrgSettings/:id",
+        component: onlineExamOrgSettings
       }
     ]
   }

+ 10 - 2
src/modules/examwork/view/examInfo.vue

@@ -149,6 +149,7 @@
                         size="mini"
                         plain
                         type="primary"
+                        icon="el-icon-check"
                         @click="enableById(scope.row)"
                       >
                         <i class="fa fa-check" aria-hidden="true"></i>启用
@@ -157,7 +158,8 @@
                         v-else-if="rolePrivileges.change_exam_availability"
                         size="mini"
                         plain
-                        type="primary"
+                        type="danger"
+                        icon="el-icon-close"
                         @click="disableById(scope.row)"
                       >
                         <i class="fa fa-close" aria-hidden="true"></i>禁用
@@ -168,11 +170,13 @@
                         :disabled="
                           !(
                             rolePrivileges.update_exam &&
-                            scope.row.examType == 'OFFLINE'
+                            (scope.row.examType == 'OFFLINE' ||
+                              scope.row.examType == 'ONLINE')
                           )
                         "
                         size="mini"
                         type="primary"
+                        icon="el-icon-edit"
                         @click="editOrgSettings(scope.row)"
                       >
                         学习中心特殊设置
@@ -344,6 +348,10 @@ export default {
         this.$router.push({
           path: "/examwork/offlineExamOrgSettings/" + row.id
         });
+      } else if (row.examType == "ONLINE") {
+        this.$router.push({
+          path: "/examwork/onlineExamOrgSettings/" + row.id
+        });
       }
     },
     showExamCourseSettingsDialog(row) {

+ 2 - 2
src/modules/examwork/view/examStudent.vue

@@ -768,7 +768,7 @@
                           rolePrivileges.change_exam_student_availability
                         "
                         size="mini"
-                        type="primary"
+                        type="danger"
                         plain
                         icon="el-icon-close"
                         @click="disableExamStudent(scope.row)"
@@ -982,7 +982,7 @@ export default {
         ],
         studentCode: [{ validator: validateStuCode, trigger: "blur" }],
         identityNumber: [
-          { validator: validateIdentityNumber, trigger: "blur" }
+          { required: true, validator: validateIdentityNumber, trigger: "blur" }
         ],
         courseId: [
           {

+ 3 - 0
src/modules/examwork/view/offlineExam.vue

@@ -283,4 +283,7 @@ export default {
 .input {
   width: 440px;
 }
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
 </style>

+ 3 - 0
src/modules/examwork/view/onlineExam.vue

@@ -979,4 +979,7 @@ export default {
 .input {
   width: 440px;
 }
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
 </style>

+ 487 - 0
src/modules/examwork/view/onlineExamOrgSettings.vue

@@ -0,0 +1,487 @@
+<template>
+  <div>
+    <LinkTitlesCustom
+      :currentPaths="['考试管理', '考试信息', '学习中心特殊设置']"
+    />
+    <section class="content">
+      <div class="box-body">
+        <el-form
+          :model="formSearch"
+          :inline="true"
+          label-position="right"
+          label-width="80px"
+        >
+          <el-form-item label="学习中心">
+            <el-select
+              class="select"
+              :remote-method="getOrgList4Search"
+              :loading="loadingOrg4Search"
+              remote
+              filterable
+              clearable
+              v-model="formSearch.orgId"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in orgList4Search"
+                :label="item.name"
+                :value="item.id"
+                :key="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="d-block">
+            <el-button
+              size="small"
+              type="primary"
+              icon="el-icon-search"
+              @click="resetPageAndSearch"
+              >查询</el-button
+            >
+            <el-button
+              size="small"
+              type="primary"
+              icon="el-icon-plus"
+              @click="showAddOrgSetting"
+              >新增</el-button
+            >
+            <el-button size="small" type="primary" @click="back"
+              >返 回</el-button
+            >
+          </el-form-item>
+        </el-form>
+
+        <!-- 页面列表 -->
+        <el-table
+          :data="tableData"
+          border
+          style="width: 100%;text-align:center;"
+          v-loading="loading4FormSearch"
+        >
+          <el-table-column prop="id" width="80" label="ID"></el-table-column>
+          <el-table-column
+            prop="orgCode"
+            label="学习中心代码"
+          ></el-table-column>
+          <el-table-column
+            prop="orgName"
+            label="学习中心名称"
+          ></el-table-column>
+          <el-table-column prop="beginTime" width="155" label="开始时间">
+          </el-table-column>
+          <el-table-column prop="endTime" width="155" label="结束时间">
+          </el-table-column>
+          <el-table-column prop="updateTime" width="155" label="更新时间">
+          </el-table-column>
+          <el-table-column width="80" label="上传附件">
+            <span slot-scope="scope"> {{ getCanUpload(scope.row) }} </span>
+          </el-table-column>
+          <el-table-column label="操作" width="80">
+            <template slot-scope="scope">
+              <div>
+                <el-button
+                  size="mini"
+                  type="primary"
+                  plain
+                  icon="el-icon-edit"
+                  @click="showUpdateOrgSetting(scope.row)"
+                >
+                  编辑
+                </el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="page pull-right">
+          <el-pagination
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="pageSize"
+            :page-sizes="[10, 20, 50, 100]"
+            @size-change="handleSizeChange"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+          >
+          </el-pagination>
+        </div>
+
+        <!-- 新增 -->
+        <el-dialog
+          title="新增学习中心考试设置"
+          size="tiny"
+          :visible.sync="addOrgSettingDialog"
+        >
+          <el-form
+            :model="orgSetting"
+            :rules="orgSettingRules"
+            ref="addOrgSettingForm"
+            label-position="right"
+            :inline="true"
+            inline-message
+          >
+            <el-row>
+              <el-form-item label="学习中心" prop="orgId" label-width="120px">
+                <el-select
+                  class="select"
+                  :remote-method="getOrgList4InsertOrUpdate"
+                  :loading="loadingOrg4InsertOrUpdate"
+                  remote
+                  filterable
+                  clearable
+                  v-model="orgSetting.orgId"
+                  placeholder="请选择"
+                >
+                  <el-option
+                    v-for="item in orgList4InsertOrUpdate"
+                    :label="item.name"
+                    :value="item.id"
+                    :key="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <el-form-item
+                label="考试时间"
+                prop="orgSettingDatetimeRange"
+                label-width="120px"
+              >
+                <el-date-picker
+                  v-model="orgSettingDatetimeRange"
+                  type="datetimerange"
+                  range-separator="至"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  :clearable="false"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <el-form-item label-width="120px" label="上传附件">
+                <el-radio-group
+                  v-model="orgSetting.properties.CAN_UPLOAD_ATTACHMENT"
+                >
+                  <el-radio label="true">允许</el-radio>
+                  <el-radio label="false">不允许</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <div style="text-align:center;">
+                <el-button type="primary" @click="addOrgSetting"
+                  >确 定</el-button
+                >
+                <el-button @click="addOrgSettingDialog = false"
+                  >取 消</el-button
+                >
+              </div>
+            </el-row>
+          </el-form>
+        </el-dialog>
+
+        <!-- 修改 -->
+        <el-dialog
+          title="修改学习中心考试设置"
+          size="tiny"
+          :visible.sync="updateOrgSettingDialog"
+        >
+          <el-form
+            :model="orgSetting"
+            :rules="orgSettingRules"
+            ref="updateOrgSettingForm"
+            label-position="right"
+            :inline="true"
+            inline-message
+          >
+            <el-row>
+              <el-form-item label="学习中心" prop="orgId" label-width="120px">
+                <el-select
+                  class="select"
+                  :remote-method="getOrgList4InsertOrUpdate"
+                  :loading="loadingOrg4InsertOrUpdate"
+                  remote
+                  filterable
+                  clearable
+                  :disabled="true"
+                  v-model="orgSetting.orgId"
+                  placeholder="请选择"
+                >
+                  <el-option
+                    v-for="item in orgList4InsertOrUpdate"
+                    :label="item.name"
+                    :value="item.id"
+                    :key="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <el-form-item
+                label="考试时间"
+                prop="orgSettingDatetimeRange"
+                label-width="120px"
+              >
+                <el-date-picker
+                  v-model="orgSettingDatetimeRange"
+                  type="datetimerange"
+                  range-separator="至"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  :clearable="false"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <el-form-item label-width="120px" label="上传附件">
+                <el-radio-group
+                  v-model="orgSetting.properties.CAN_UPLOAD_ATTACHMENT"
+                >
+                  <el-radio label="true">允许</el-radio>
+                  <el-radio label="false">不允许</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-row>
+            <el-row>
+              <div style="margin-left:30%">
+                <el-button type="primary" @click="updateOrgSetting"
+                  >确 定</el-button
+                >
+                <el-button @click="updateOrgSettingDialog = false"
+                  >取 消</el-button
+                >
+              </div>
+            </el-row>
+          </el-form>
+        </el-dialog>
+      </div>
+    </section>
+  </div>
+</template>
+
+<script>
+import { CORE_API, EXAM_WORK_API } from "@/constants/constants.js";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
+
+let _this = null;
+
+let validateOrgSettingDatetimeRange = (rule, value, callback) => {
+  let examDatetimeRange = _this.orgSettingDatetimeRange;
+  if (!examDatetimeRange || 0 == examDatetimeRange.length) {
+    callback(new Error("请输入考试时间"));
+    _this.activeName = "tab1";
+  } else {
+    callback();
+  }
+};
+
+export default {
+  components: { LinkTitlesCustom },
+  data() {
+    return {
+      examId: null,
+      loading4FormSearch: false,
+      formSearch: {
+        examId: null,
+        orgId: ""
+      },
+      loadingOrg4Search: false,
+      orgList4Search: [],
+
+      tableData: [],
+      currentPage: 1,
+      pageSize: 10,
+      total: 0,
+
+      orgSetting: {
+        examId: null,
+        orgId: null,
+        beginTime: null,
+        endTime: null,
+        properties: {
+          CAN_UPLOAD_ATTACHMENT: "true"
+        }
+      },
+      orgSettingDatetimeRange: [],
+      addOrgSettingDialog: false,
+      updateOrgSettingDialog: false,
+      orgList4InsertOrUpdate: [],
+      loadingOrg4InsertOrUpdate: false,
+      orgSettingRules: {
+        orgId: [
+          { required: true, message: "请选择学习中心", trigger: "blur,change" }
+        ],
+        orgSettingDatetimeRange: [
+          {
+            required: true,
+            validator: validateOrgSettingDatetimeRange,
+            trigger: "blur"
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    getOrgList4Search(name) {
+      this.loadingOrg4Search = true;
+      var url = CORE_API + "/org/query?" + new URLSearchParams({ name: name });
+      this.$httpWithMsg
+        .get(url)
+        .then(response => {
+          this.orgList4Search = response.data;
+          this.loadingOrg4Search = false;
+        })
+        .catch(response => {
+          console.log(response);
+          this.loadingOrg4Search = false;
+        });
+    },
+    getOrgList4InsertOrUpdate(name) {
+      this.loadingOrg4InsertOrUpdate = true;
+      var url = CORE_API + "/org/query?" + new URLSearchParams({ name: name });
+      this.$httpWithMsg
+        .get(url)
+        .then(response => {
+          this.orgList4InsertOrUpdate = response.data;
+          this.loadingOrg4InsertOrUpdate = false;
+        })
+        .catch(response => {
+          console.log(response);
+          this.loadingOrg4InsertOrUpdate = false;
+        });
+    },
+    updateOrgSetting() {
+      this.orgSetting.beginTime = this.orgSettingDatetimeRange[0];
+      this.orgSetting.endTime = this.orgSettingDatetimeRange[1];
+      this.$refs.updateOrgSettingForm.validate(valid => {
+        if (valid) {
+          let url = EXAM_WORK_API + "/exam/examOrgSettings";
+          this.$httpWithMsg.post(url, this.orgSetting).then(response => {
+            console.log(response);
+            this.$notify({
+              type: "success",
+              message: "保存成功"
+            });
+            this.search();
+            this.updateOrgSettingDialog = false;
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    addOrgSetting() {
+      this.orgSetting.beginTime = this.orgSettingDatetimeRange[0];
+      this.orgSetting.endTime = this.orgSettingDatetimeRange[1];
+      this.$refs.addOrgSettingForm.validate(valid => {
+        if (valid) {
+          let url = EXAM_WORK_API + "/exam/examOrgSettings";
+          this.$httpWithMsg.put(url, this.orgSetting).then(response => {
+            console.log(response);
+            this.$notify({
+              type: "success",
+              message: "保存成功"
+            });
+            this.search();
+            this.addOrgSettingDialog = false;
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+    back() {
+      this.$router.push({ path: "/examwork/examInfo" });
+    },
+    getCanUpload(row) {
+      if (row.properties.CAN_UPLOAD_ATTACHMENT === null) {
+        if (Date.now() > row.endTime) {
+          return "不允许";
+        } else {
+          return "允许";
+        }
+      } else {
+        return row.properties.CAN_UPLOAD_ATTACHMENT == "true"
+          ? "允许"
+          : "不允许";
+      }
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.search();
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.search();
+    },
+    showUpdateOrgSetting(row) {
+      this.orgSetting.examId = row.examId;
+      this.orgSetting.beginTime = row.beginTime;
+      this.orgList4InsertOrUpdate = [{ id: row.orgId, name: row.orgName }];
+      this.orgSetting.orgId = row.orgId;
+      this.orgSetting.endTime = row.endTime;
+      this.orgSetting.properties.CAN_UPLOAD_ATTACHMENT =
+        row.properties.CAN_UPLOAD_ATTACHMENT;
+      if (row.beginTime && row.endTime) {
+        this.orgSettingDatetimeRange = [row.beginTime, row.endTime];
+      }
+      this.updateOrgSettingDialog = true;
+    },
+    showAddOrgSetting() {
+      this.orgSetting.examId = this.examId;
+      this.orgSetting.beginTime = null;
+      this.orgList4InsertOrUpdate = [];
+      this.orgSetting.orgId = null;
+      this.orgSetting.endTime = null;
+      this.orgSetting.properties.CAN_UPLOAD_ATTACHMENT = "true";
+      this.orgSettingDatetimeRange = [];
+      this.addOrgSettingDialog = true;
+    },
+
+    resetPageAndSearch() {
+      this.currentPage = 1;
+      this.search();
+    },
+    search() {
+      let param = new URLSearchParams(this.formSearch);
+      let url =
+        EXAM_WORK_API +
+        "/exam/getExamOrgSettingsList/" +
+        (this.currentPage - 1) +
+        "/" +
+        this.pageSize +
+        "?" +
+        param;
+      this.loading4FormSearch = true;
+      this.$httpWithMsg
+        .get(url)
+        .then(response => {
+          console.log(response);
+          this.tableData = response.data.list;
+          this.total = response.data.total;
+          this.loading4FormSearch = false;
+        })
+        .catch(response => {
+          console.log(response);
+          this.loading4FormSearch = false;
+        });
+    },
+    init() {
+      this.search();
+    }
+  },
+  created() {
+    _this = this;
+    this.examId = this.$route.params.id;
+    this.formSearch.examId = this.examId;
+    this.init();
+  }
+};
+</script>
+<style scoped></style>

+ 4 - 1
src/modules/examwork/view/practiceExam.vue

@@ -482,4 +482,7 @@ export default {
 .input {
   width: 440px;
 }
-</style>
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
+</style>

+ 3 - 0
src/modules/examwork/view/printExam.vue

@@ -243,4 +243,7 @@ export default {
 .input {
   width: 440px;
 }
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
 </style>

+ 3 - 3
src/modules/examwork/view/student.vue

@@ -250,7 +250,7 @@
               <el-button
                 v-else-if="rolePrivileges.change_student_availability"
                 size="mini"
-                type="primary"
+                type="danger"
                 plain
                 icon="el-icon-close"
                 @click="disableStudent(scope.row)"
@@ -404,8 +404,8 @@
 
         <!-- 导入照片弹窗 -->
         <el-dialog
-          title="学生照片导入"
-          width="500px"
+          title="学生照片导入"
+          width="350px"
           :visible.sync="photoUploadDialog"
         >
           <el-form>

+ 3 - 0
src/modules/examwork/view/traditionExam.vue

@@ -236,4 +236,7 @@ export default {
 .input {
   width: 440px;
 }
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
 </style>

+ 5 - 4
src/modules/marking/routes/routes.js

@@ -24,15 +24,16 @@ export default [
         component: Tips
       },
       {
-        path: "mark_work_overview/:workId/:examId/:name", //评卷总览
+        path: "mark_work_overview", //评卷总览
         component: MarkWorkOverview
       },
       {
-        path: "course_detail/:workId/:examId/:name/:courseCode/:courseName", //课程详情
+        path:
+          "course_detail/:workId/:examId/:markWorkName/:courseCode/:courseName", //课程详情
         component: CourseDetail
       },
       {
-        path: "marker/:workId/:examId/:name", //评卷员一览
+        path: "marker", //评卷员一览
         component: Marker
       },
       {
@@ -52,7 +53,7 @@ export default [
         component: MarkWork
       },
       {
-        path: "mark_paper_check/:workId/:examId/:examType", //试卷检查
+        path: "mark_paper_check", //试卷检查
         component: MarkPaperCheck
       },
       {

+ 6 - 15
src/modules/marking/views/CourseDetail.vue

@@ -1,8 +1,6 @@
 <template>
   <div>
-    <LinkTitlesCustom
-      :currentPaths="['评卷总览', '评卷进度', '进度列表', '课程详情']"
-    />
+    <LinkTitlesCustom :currentPaths="['评卷总览', '评卷进度', '课程详情']" />
     <section class="content">
       <div class="box box-info">
         <div class="box-body">
@@ -112,8 +110,7 @@ export default {
       loading: true,
       workId: "",
       examId: "",
-      courseCode: "",
-      examName: ""
+      courseCode: ""
     };
   },
   components: {
@@ -196,15 +193,10 @@ export default {
         this.courseCode;
     },
     back() {
-      this.$router.push({
-        path:
-          "/marking/mark_work_overview/" +
-          this.workId +
-          "/" +
-          this.examId +
-          "/" +
-          this.examName
-      });
+      this.$router.back();
+      // this.$router.push({
+      //   path: "/marking/mark_work_overview"
+      // });
     }
   },
   computed: {
@@ -213,7 +205,6 @@ export default {
   created() {
     this.workId = this.$route.params.workId;
     this.examId = this.$route.params.examId;
-    this.examName = this.$route.params.name;
     this.courseCode = this.$route.params.courseCode;
     this.initSetting();
   }

+ 74 - 47
src/modules/marking/views/MarkPaperCheck.vue

@@ -1,6 +1,5 @@
 <template>
   <div>
-    <LinkTitlesCustom :currentPaths="['试卷检查', '试卷列表']" />
     <section class="content">
       <div class="box box-info">
         <div class="box-body">
@@ -10,6 +9,25 @@
             ref="formSearch"
             label-width="70px"
           >
+            <el-form-item label="评卷名称" prop="markId">
+              <el-select
+                clearable
+                filterable
+                class="input"
+                v-model="formSearch.markId"
+                placeholder="请选择"
+                style="width:150px;"
+                @change="getCourses"
+              >
+                <el-option value>请选择</el-option>
+                <el-option
+                  v-for="item in markWorkSelect"
+                  :label="item.markName"
+                  :value="item.markId"
+                  :key="item.markId"
+                ></el-option>
+              </el-select>
+            </el-form-item>
             <el-form-item label="学习中心" prop="orgCode">
               <el-select
                 :remote-method="getOrgs"
@@ -21,7 +39,7 @@
                 placeholder="请选择"
                 filterable
                 style="width:150px;"
-                @focus="e => getSpecialtyList4Search(e.target.value)"
+                @focus="e => getOrgs(e.target.value)"
               >
                 <el-option label="请选择" value></el-option>
                 <el-option
@@ -122,13 +140,6 @@
                 icon="el-icon-refresh"
                 >重置</el-button
               >
-              <el-button
-                size="small"
-                type="primary"
-                icon="el-icon-arrow-left"
-                @click="back"
-                >返回</el-button
-              >
             </el-form-item>
           </el-form>
 
@@ -214,7 +225,6 @@
 <script>
 import { mapState } from "vuex";
 import { CORE_API, MARKING_API, DATA_PROCESS_API } from "@/constants/constants";
-import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 
 export default {
   data() {
@@ -245,14 +255,23 @@ export default {
       tags: [],
       loading: false,
       examType: "",
-      getOrgsSearchLoading: false
+      getOrgsSearchLoading: false,
+      markWorkList: []
     };
   },
-  components: {
-    LinkTitlesCustom
-  },
   computed: {
     ...mapState({ user: state => state.user }),
+    markWorkSelect() {
+      let markWorkNames = [];
+      for (let markWork of this.markWorkList) {
+        markWorkNames.push({
+          markId: markWork.id,
+          markName: markWork.name,
+          examId: markWork.examId
+        });
+      }
+      return markWorkNames;
+    },
     isAdmin() {
       if (sessionStorage.getItem("AdminButtonShow")) {
         return true;
@@ -275,6 +294,11 @@ export default {
     }
   },
   methods: {
+    getMarkWorks() {
+      this.$http.get(DATA_PROCESS_API + "/markWorks").then(response => {
+        this.markWorkList = response.data;
+      });
+    },
     //查询学习中心
     getOrgs(name) {
       this.getOrgsSearchLoading = true;
@@ -287,7 +311,9 @@ export default {
     getCourses() {
       this.$http
         .get(
-          MARKING_API + "/markResults/queryExamCourseList?workId=" + this.workId
+          MARKING_API +
+            "/markResults/queryExamCourseList?workId=" +
+            this.formSearch.markId
         )
         .then(response => {
           this.courseList = response.data;
@@ -332,26 +358,37 @@ export default {
     },
     //查询方法
     searchMarkPaperCheck() {
-      this.formSearch.workId = this.workId;
-      this.formSearch.examType = this.examType;
-      this.loading = true;
-      var url =
-        DATA_PROCESS_API +
-        "/markResults/all/" +
-        (this.currentPage - 1) +
-        "/" +
-        this.pageSize;
-      this.$http
-        .get(url, { params: this.formSearch })
-        .then(response => {
-          console.log("查询的列表集合", response);
-          this.tableData = response.data.list;
-          this.total = response.data.total;
-          this.loading = false;
-        })
-        .catch(function(response) {
-          console.log(response);
-        });
+      if (this.formSearch.markId) {
+        let obj = {};
+        for (let item of this.markWorkList) {
+          if (item.id === this.formSearch.markId) {
+            obj = item;
+            break;
+          }
+        }
+        this.examId = obj.examId;
+        this.formSearch.workId = this.formSearch.markId;
+        this.examType = obj.examType;
+        this.formSearch.examType = this.examType;
+        this.loading = true;
+        var url =
+          DATA_PROCESS_API +
+          "/markResults/all/" +
+          (this.currentPage - 1) +
+          "/" +
+          this.pageSize;
+        this.$http
+          .get(url, { params: this.formSearch })
+          .then(response => {
+            console.log("查询的列表集合", response);
+            this.tableData = response.data.list;
+            this.total = response.data.total;
+            this.loading = false;
+          })
+          .catch(function(response) {
+            console.log(response);
+          });
+      }
     },
     //导出
     exp() {},
@@ -373,7 +410,7 @@ export default {
         console.log("studentPaperId:", studentPaperId);
         var urls =
           "/marking/view_paper/" +
-          this.workId +
+          this.formSearch.markId +
           "/" +
           this.examId +
           "/" +
@@ -408,22 +445,12 @@ export default {
           return str;
         }
       }
-    },
-    back() {
-      this.$router.push({
-        path: "/marking/mark_setting_work/checking"
-      });
     }
   },
   created() {
-    this.workId = this.$route.params.workId;
-    this.examId = this.$route.params.examId;
-    this.examType = this.$route.params.examType;
     //查询标记卷
+    this.getMarkWorks();
     this.getTags();
-    this.getCourses();
-    //查询列表
-    this.searchMarkPaperCheck();
   }
 };
 </script>

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

@@ -60,7 +60,6 @@
                       size="small"
                       type="primary"
                       icon="el-icon-upload2"
-                      @click="back"
                       >导入</el-button
                     >
                   </el-dropdown-item>
@@ -69,7 +68,6 @@
                       size="small"
                       type="primary"
                       icon="el-icon-download"
-                      @click="back"
                       >导出</el-button
                     >
                   </el-dropdown-item>
@@ -352,7 +350,7 @@ export default {
     },
     back() {
       this.$router.push({
-        path: "/marking/mark_setting_work/setting"
+        path: "/marking/mark_work"
       });
     },
     //导入

+ 24 - 3
src/modules/marking/views/MarkWork.vue

@@ -82,12 +82,11 @@
               <template slot-scope="scope">
                 <div class="pull-left" v-if="isAdmin">
                   <el-button
-                    @click="editMarkWorkModal(scope.row)"
+                    @click="settingMarkWork(scope.row)"
                     type="primary"
                     size="mini"
-                    icon="el-icon-edit"
                     plain
-                    >编辑</el-button
+                    >评卷设置</el-button
                   >
                   <el-dropdown
                     style="margin-left:10px;"
@@ -106,6 +105,16 @@
                           >重新创建</el-button
                         >
                       </el-dropdown-item>
+                      <el-dropdown-item>
+                        <el-button
+                          @click="editMarkWorkModal(scope.row)"
+                          type="primary"
+                          size="mini"
+                          icon="el-icon-edit"
+                          plain
+                          >编辑</el-button
+                        >
+                      </el-dropdown-item>
                       <el-dropdown-item>
                         <el-button
                           @click="delMarkWork(scope.row)"
@@ -256,6 +265,18 @@ export default {
     ...mapState({ user: state => state.user })
   },
   methods: {
+    settingMarkWork(row) {
+      var url =
+        "/marking/mark_setting_main/" +
+        row.id +
+        "/" +
+        row.examId +
+        "/" +
+        row.name;
+      this.$router.push({
+        path: url
+      });
+    },
     getStatus(code) {
       for (let status of this.statusList) {
         if (status.code == code) {

+ 165 - 32
src/modules/marking/views/MarkWorkOverview.vue

@@ -1,10 +1,41 @@
 <template>
   <div>
-    <LinkTitlesCustom :currentPaths="['评卷总览', '评卷进度', '进度列表']" />
     <section class="content">
       <div class="box box-info">
         <div class="box-body">
-          <div class="echarts">
+          <div>
+            <el-form
+              :inline="true"
+              :model="markWorkSearchForm"
+              label-position="right"
+              label-width="70px"
+            >
+              <el-row>
+                <el-col :span="24">
+                  <el-form-item label="评卷名称" class="pull-left">
+                    <el-select
+                      clearable
+                      filterable
+                      class="input"
+                      v-model="markWorkSearchForm.markId"
+                      placeholder="请选择"
+                      @change="searchMarkWork"
+                      @clear="cleanMarkWork"
+                    >
+                      <el-option value>请选择</el-option>
+                      <el-option
+                        v-for="item in markWorkSelect"
+                        :label="item.markName"
+                        :value="item.markId"
+                        :key="item.markId"
+                      ></el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </div>
+          <div class="echarts echarts-div">
             <div class="pie"><v-charts :options="pie"></v-charts></div>
             <div class="pie"><v-charts :options="pie1"></v-charts></div>
           </div>
@@ -42,13 +73,6 @@
                     @click="searchSetting"
                     >查询</el-button
                   >
-                  <el-button
-                    size="small"
-                    type="primary"
-                    icon="el-icon-arrow-left"
-                    @click="back"
-                    >返回</el-button
-                  >
                 </el-form-item>
               </el-col>
             </el-row>
@@ -125,31 +149,33 @@
 </template>
 
 <script>
-import { MARKING_API } from "@/constants/constants";
+import { MARKING_API, DATA_PROCESS_API } from "@/constants/constants";
 import { mapState } from "vuex";
 import ECharts from "vue-echarts/components/ECharts";
 import "echarts/lib/chart/pie";
-import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
   components: {
-    "v-charts": ECharts,
-    LinkTitlesCustom
+    "v-charts": ECharts
   },
   data() {
     return {
       formSearch: {
         courseCode: ""
       },
+      markWorkSearchForm: {
+        markId: ""
+      },
       tableData: [],
       oldData: [],
       currentPage: 1,
       pageSize: 10,
       total: 10,
-      loading: true,
+      loading: false,
       workId: "",
       examId: "",
-      examName: "",
+      markWorkName: "",
       courseList: [],
+      markWorkList: [],
       pie: {
         title: {
           text: "试卷进度情况",
@@ -253,6 +279,88 @@ export default {
     };
   },
   methods: {
+    cleanMarkWork() {
+      //代表清空所有数据列表信息
+      this.pie.series = [
+        {
+          name: "试卷总数:0",
+          type: "pie",
+          radius: "55%",
+          center: ["50%", "60%"],
+          data: [
+            {
+              value: 0,
+              name: "待完成",
+              itemStyle: {
+                normal: {
+                  color: "#FE8463"
+                }
+              }
+            },
+            {
+              value: 0,
+              name: "完成数",
+              itemStyle: {
+                normal: {
+                  color: "#7CB5EC"
+                }
+              }
+            }
+          ],
+          itemStyle: {
+            emphasis: {
+              shadowBlur: 10,
+              shadowOffsetX: 0,
+              shadowColor: "rgba(0, 0, 0, 0.5)"
+            }
+          }
+        }
+      ];
+
+      this.pie1.series = [
+        {
+          name: "课程总数:0",
+          type: "pie",
+          radius: "55%",
+          center: ["50%", "60%"],
+          data: [
+            {
+              value: 0,
+              name: "待完成",
+              itemStyle: {
+                normal: {
+                  color: "#FE8463"
+                }
+              }
+            },
+            {
+              value: 0,
+              name: "完成数",
+              itemStyle: {
+                normal: {
+                  color: "#7CB5EC"
+                }
+              }
+            }
+          ],
+          itemStyle: {
+            emphasis: {
+              shadowBlur: 10,
+              shadowOffsetX: 0,
+              shadowColor: "rgba(0, 0, 0, 0.5)"
+            }
+          }
+        }
+      ];
+      this.courseList = [];
+      this.tableData = [];
+      this.total = 0;
+    },
+    getMarkWorks() {
+      this.$http.get(DATA_PROCESS_API + "/markWorks").then(response => {
+        this.markWorkList = response.data;
+      });
+    },
     getCourses() {
       this.$http
         .get(
@@ -321,11 +429,11 @@ export default {
     courseDetail(row) {
       var url =
         "/marking/course_detail/" +
-        this.$route.params.workId +
+        this.workId +
         "/" +
-        this.$route.params.examId +
+        this.examId +
         "/" +
-        this.$route.params.name +
+        this.markWorkName +
         "/" +
         row.code +
         "/" +
@@ -442,10 +550,22 @@ export default {
           this.loading = false;
         });
     },
-    back() {
-      this.$router.push({
-        path: "/marking/mark_setting_work/overview"
-      });
+    searchMarkWork(val) {
+      if (this.markWorkSearchForm.markId) {
+        let obj = {};
+        for (let item of this.markWorkList) {
+          if (item.id === val) {
+            obj = item;
+            break;
+          }
+        }
+        this.examId = obj.examId;
+        this.markWorkName = obj.name;
+        this.workId = this.markWorkSearchForm.markId;
+        this.doPie();
+        this.initSetting();
+        this.getCourses();
+      }
     }
   },
   computed: {
@@ -457,15 +577,21 @@ export default {
         courseSelect.push({ code: course.code, courseInfo: courseInfo });
       }
       return courseSelect;
+    },
+    markWorkSelect() {
+      let markWorkNames = [];
+      for (let markWork of this.markWorkList) {
+        markWorkNames.push({
+          markId: markWork.id,
+          markName: markWork.name,
+          examId: markWork.examId
+        });
+      }
+      return markWorkNames;
     }
   },
   created() {
-    this.workId = this.$route.params.workId;
-    this.examId = this.$route.params.examId;
-    this.examName = this.$route.params.name;
-    this.initSetting();
-    this.doPie();
-    this.getCourses();
+    this.getMarkWorks();
   }
 };
 </script>
@@ -494,8 +620,15 @@ li {
 .echarts {
     display: flex;
 }
-    .pie{
-        width: 450px;
-        height: 350px;
-    }
+.pie{
+    width: 450px;
+    height: 350px;
+    margin-top: 10px;
+    margin-left: 10px
+}
+.echarts-div{
+  border:1px solid #CCC;
+  width: auto;
+  margin-bottom: 10px;
+}
 </style>

+ 53 - 45
src/modules/marking/views/Marker.vue

@@ -1,6 +1,5 @@
 <template>
   <div>
-    <LinkTitlesCustom :currentPaths="['评卷总览', '评卷员一览', '评卷列表']" />
     <section class="content">
       <div class="box box-info">
         <div class="box-body">
@@ -8,8 +7,25 @@
             :inline="true"
             :model="formSearch"
             label-position="right"
-            label-width="60px"
+            label-width="70px"
           >
+            <el-form-item label="评卷名称" class="pull-left">
+              <el-select
+                clearable
+                filterable
+                class="input"
+                v-model="formSearch.markId"
+                placeholder="请选择"
+              >
+                <el-option value>请选择</el-option>
+                <el-option
+                  v-for="item in markWorkSelect"
+                  :label="item.markName"
+                  :value="item.markId"
+                  :key="item.markId"
+                ></el-option>
+              </el-select>
+            </el-form-item>
             <el-form-item label="登录名" class="pull-left">
               <el-input
                 placeholder="登录名"
@@ -30,13 +46,6 @@
                 @click="searchSetting"
                 >查询</el-button
               >
-              <el-button
-                size="small"
-                type="primary"
-                icon="el-icon-arrow-left"
-                @click="back"
-                >返回</el-button
-              >
             </el-form-item>
           </el-form>
 
@@ -107,7 +116,6 @@
 <script>
 import { DATA_PROCESS_API } from "@/constants/constants";
 import { mapState } from "vuex";
-import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
 export default {
   data() {
     return {
@@ -120,15 +128,13 @@ export default {
       currentPage: 1,
       pageSize: 10,
       total: 10,
-      loading: true,
+      loading: false,
       workId: "",
       examId: "",
-      examName: ""
+      markWorkName: "",
+      markWorkList: []
     };
   },
-  components: {
-    LinkTitlesCustom
-  },
   methods: {
     handleSettingCurrentChange(val) {
       this.currentPage = val;
@@ -151,26 +157,20 @@ export default {
       }
       this.tableData = tempData;
     },
-    initSetting() {
-      this.loading = true;
-      this.$http
-        .get(
-          DATA_PROCESS_API +
-            "/markers/all/" +
-            (this.currentPage - 1) +
-            "/" +
-            this.pageSize +
-            "?workId=" +
-            this.workId
-        )
-        .then(response => {
-          console.log(response);
-          this.tableData = response.data.content;
-          this.total = response.data.totalElements;
-          this.loading = false;
-        });
-    },
     searchSetting() {
+      if (!this.formSearch.markId) {
+        return;
+      }
+      let obj = {};
+      for (let item of this.markWorkList) {
+        if (item.id === this.formSearch.markId) {
+          obj = item;
+          break;
+        }
+      }
+      this.examId = obj.examId;
+      this.markWorkName = obj.name;
+      this.workId = this.formSearch.markId;
       this.loading = true;
       this.$http
         .get(
@@ -193,11 +193,11 @@ export default {
     markerDetail(row) {
       var url =
         "/marking/marker_detail/" +
-        this.$route.params.workId +
+        this.workId +
         "/" +
-        this.$route.params.examId +
+        this.examId +
         "/" +
-        this.$route.params.name +
+        this.markWorkName +
         "/" +
         row.userId +
         "/" +
@@ -206,20 +206,28 @@ export default {
         path: url
       });
     },
-    back() {
-      this.$router.push({
-        path: "/marking/mark_setting_work/marker"
+    getMarkWorks() {
+      this.$http.get(DATA_PROCESS_API + "/markWorks").then(response => {
+        this.markWorkList = response.data;
       });
     }
   },
   computed: {
-    ...mapState({ user: state => state.user })
+    ...mapState({ user: state => state.user }),
+    markWorkSelect() {
+      let markWorkNames = [];
+      for (let markWork of this.markWorkList) {
+        markWorkNames.push({
+          markId: markWork.id,
+          markName: markWork.name,
+          examId: markWork.examId
+        });
+      }
+      return markWorkNames;
+    }
   },
   created() {
-    this.workId = this.$route.params.workId;
-    this.examId = this.$route.params.examId;
-    this.examName = this.$route.params.name;
-    this.initSetting();
+    this.getMarkWorks();
   }
 };
 </script>

+ 2 - 8
src/modules/marking/views/MarkerDetail.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <LinkTitlesCustom
-      :currentPaths="['评卷总览', '评卷员一览', '评卷列表', '评卷员详情']"
+      :currentPaths="['评卷总览', '评卷员一览', '评卷员详情']"
     />
     <section class="content">
       <div class="box box-info">
@@ -185,13 +185,7 @@ export default {
     },
     back() {
       this.$router.push({
-        path:
-          "/marking/marker/" +
-          this.workId +
-          "/" +
-          this.examId +
-          "/" +
-          this.examName
+        path: "/marking/marker"
       });
     }
   },

+ 1 - 7
src/modules/marking/views/ViewPaper.vue

@@ -37,13 +37,7 @@ export default {
   },
   methods: {
     back() {
-      var url =
-        "/marking/mark_paper_check/" +
-        this.workId +
-        "/" +
-        this.examId +
-        "/" +
-        this.examType;
+      var url = "/marking/mark_paper_check/";
       this.$router.push({
         path: url
       });

+ 1 - 0
src/modules/portal/views/Login.vue

@@ -203,6 +203,7 @@ export default {
   color: #3968d7;
   text-shadow: 0px 7px 4px rgba(77, 124, 196, 0.3);
   text-align: center;
+  letter-spacing: 0.2em;
 }
 
 .login-main {

+ 4 - 1
src/modules/portal/views/home/LinkTitles.vue

@@ -7,7 +7,10 @@
     <el-breadcrumb-item :to="{ path: '/home/overview' }"
       >首页</el-breadcrumb-item
     >
-    <el-breadcrumb-item v-for="item in currentPaths" :key="item">
+    <el-breadcrumb-item
+      v-for="(item, index) in currentPaths"
+      :key="item + index"
+    >
       {{ item }}
     </el-breadcrumb-item>
   </el-breadcrumb>

+ 3 - 3
src/modules/portal/views/tips/Tips.vue

@@ -183,7 +183,7 @@ const ALL_INSTRUCTIONS = {
       menu2: [
         {
           name: "评卷总览——评卷进度",
-          link: "/marking/mark_setting_work/overview",
+          link: "/marking/mark_work_overview",
           detail: "本次评卷完成进度,可以按卷量、课程进行查询。"
         }
       ]
@@ -193,7 +193,7 @@ const ALL_INSTRUCTIONS = {
       menu2: [
         {
           name: "评卷总览——评卷员一览",
-          link: "/marking/mark_setting_work/marker",
+          link: "/marking/marker",
           detail: "可以按评卷员统计出阅卷量、最高分、最低分、方差等。"
         }
       ]
@@ -203,7 +203,7 @@ const ALL_INSTRUCTIONS = {
       menu2: [
         {
           name: "试卷检查",
-          link: "/marking/mark_setting_work/checking",
+          link: "/marking/mark_paper_check",
           detail:
             "可以查看所有已评卷的结果,并对有疑问的试卷进行打回,让评卷员进行重新给分。"
         }

+ 5 - 1
src/modules/questions/views/BluePaperStructure.vue

@@ -45,7 +45,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchAll"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" type="primary" @click="insertStruct"
@@ -191,6 +191,10 @@ export default {
       this.currentPage = val;
       this.searchAll();
     },
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchAll();
+    },
     //查询所有
     searchAll() {
       this.loading = true;

+ 9 - 5
src/modules/questions/views/CourseProperty.vue

@@ -46,7 +46,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchCourProperty"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" type="primary" @click="addCourseProperty"
@@ -63,7 +63,7 @@
             <span>批量操作:</span>
             <el-button
               size="small"
-              type="primary"
+              type="success"
               @click="openCoursePropertys"
               :disabled="noBatchSelected"
               ><i class="el-icon-check"></i> 启用</el-button
@@ -136,11 +136,11 @@
               <el-button
                 v-if="!scope.row.enable"
                 size="mini"
-                type="primary"
+                type="success"
                 plain
                 @click="openCourseProperty(scope.row)"
               >
-                <i class="fa fa-check" aria-hidden="true"></i>启用
+                <i class="el-icon-check" aria-hidden="true"></i>启用
               </el-button>
               <el-button
                 v-if="scope.row.enable"
@@ -148,7 +148,7 @@
                 type="danger"
                 @click="closeCourseProperty(scope.row)"
               >
-                <i class="fa fa-close" aria-hidden="true"></i>禁用
+                <i class="el-icon-close" aria-hidden="true"></i>禁用
               </el-button>
             </div>
           </template>
@@ -258,6 +258,10 @@ export default {
 
   methods: {
     //查询所有课程属性
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchCourProperty();
+    },
     searchCourProperty() {
       this.loading = true;
       var url =

+ 7 - 3
src/modules/questions/views/ExportStructure.vue

@@ -73,7 +73,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="search"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" @click="resetForm"
@@ -433,6 +433,10 @@ export default {
         exportType: null
       };
     },
+    searchFrom() {
+      this.currentPage = 1;
+      this.search();
+    },
     search() {
       this.tableData = [];
       this.loading = true;
@@ -589,7 +593,7 @@ export default {
         this.$http
           .get(
             EXAM_WORK_API +
-              "/exam/queryByNameLike?name=&examType=" +
+              "/exam/queryByNameLike?name=&examTypes=" +
               this.exportStructure.examType
           )
           .then(response => {
@@ -642,7 +646,7 @@ export default {
         this.$http
           .get(
             EXAM_WORK_API +
-              "/exam/queryByNameLike?name=&examType=" +
+              "/exam/queryByNameLike?name=&examTypes=" +
               this.exportStructureCopy.examType
           )
           .then(response => {

+ 5 - 2
src/modules/questions/views/ExtractPaperInfo.vue

@@ -544,9 +544,12 @@ export default {
                   "/questions/extract_paper_rule/" + this.extractConfig.examId
               });
             },
-            response => {
+            error => {
               this.loading = false;
-              this.$notify({ type: "error", message: response.data.desc });
+              this.$notify({
+                type: "error",
+                message: error.response.data.desc
+              });
             }
           );
       } else {

+ 13 - 5
src/modules/questions/views/ExtractPaperRule.vue

@@ -59,7 +59,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchRulePaper"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" type="primary" @click="markRules"
@@ -321,6 +321,10 @@ export default {
       });
     },
     //查询列表
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchRulePaper();
+    },
     searchRulePaper() {
       if (!this.formSearch.examId) {
         this.$notify({
@@ -365,6 +369,7 @@ export default {
     },
     //制定调卷规则
     markRules() {
+      sessionStorage.setItem("extract_paper_examId", this.formSearch.examId);
       this.$router.push({
         name: "extract_paper_info_add"
       });
@@ -631,14 +636,17 @@ export default {
           sessionStorage.getItem("extract_paper_courseNo") == "null"
             ? ""
             : sessionStorage.getItem("extract_paper_courseNo");
-        this.formSearch.examId = parseInt(
-          sessionStorage.getItem("extract_paper_examId")
-        );
+        this.formSearch.examId =
+          sessionStorage.getItem("extract_paper_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);
+        if (this.formSearch.examId) {
+          this.initialize(this.formSearch.examId);
+        }
       }
     }
   },

+ 8 - 2
src/modules/questions/views/GenPaper.vue

@@ -64,7 +64,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchGenPaper"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" @click="resetForm"
@@ -391,6 +391,11 @@ export default {
         name: ""
       };
     },
+    //查询
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchGenPaper();
+    },
     searchGenPaper() {
       this.loading = true;
       var url =
@@ -436,6 +441,7 @@ export default {
       );
     },
     editGenPaper(row) {
+      this.getCourseName(this.formSearch.courseNo);
       sessionStorage.setItem("gen_paper", JSON.stringify(this.formSearch));
       sessionStorage.setItem("gen_paper_currentPage", this.currentPage);
       this.$router.push({
@@ -718,7 +724,7 @@ export default {
             ? 1
             : parseInt(sessionStorage.getItem("gen_paper_currentPage"));
       }
-      this.getCourses(this.formSearch.courseNo);
+      this.getCourses(this.formSearch.courseName);
       this.searchGenPaper();
     }
   },

+ 16 - 2
src/modules/questions/views/ImportPaper.vue

@@ -65,7 +65,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchImportPaper"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" type="primary" @click="impPaper"
@@ -355,6 +355,7 @@ export default {
       quesLoading: false,
       formSearch: {
         courseNo: "",
+        courseName: "",
         level: "",
         name: ""
       },
@@ -403,6 +404,10 @@ export default {
     };
   },
   methods: {
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchImportPaper();
+    },
     searchImportPaper() {
       this.loading = true;
       var url =
@@ -417,8 +422,17 @@ export default {
       this.currentPage = val;
       this.searchImportPaper();
     },
+    getCourseName(courseNo) {
+      for (let course of this.courseList) {
+        if (course.code == courseNo) {
+          this.formSearch.courseName = course.name;
+          this.formSearch.level = course.level;
+        }
+      }
+    },
     editImportPaper(row) {
       //缓存查询对象
+      this.getCourseName(this.formSearch.courseNo);
       sessionStorage.setItem("import_paper", JSON.stringify(this.formSearch));
       sessionStorage.setItem("import_paper_currentPage", this.currentPage);
       this.$router.push({
@@ -750,7 +764,7 @@ export default {
             ? 1
             : parseInt(sessionStorage.getItem("import_paper_currentPage"));
       }
-      this.getCourses(this.formSearch.courseNo);
+      this.getCourses(this.formSearch.courseName);
       this.searchImportPaper();
     }
   },

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

@@ -56,7 +56,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchPaperStructs"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" @click="resetForm">
@@ -205,6 +205,10 @@ export default {
       };
     },
     //查询
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchPaperStructs();
+    },
     searchPaperStructs() {
       this.loading = true;
       var url =

+ 5 - 1
src/modules/questions/views/Question.vue

@@ -159,7 +159,7 @@
           </el-col>
           <el-col :span="6">
             <div class="search_down">
-              <el-button size="small" type="primary" @click="searchQues"
+              <el-button size="small" type="primary" @click="searchFrom"
                 ><i class="el-icon-search"></i> 查询</el-button
               >
               <el-button size="small" @click="resetForm"
@@ -398,6 +398,10 @@ export default {
       }
     },
     //查询列表
+    searchFrom() {
+      this.currentPage = 1;
+      this.searchQues();
+    },
     searchQues() {
       this.tableData = [];
       var url =