Bläddra i källkod

考生信息场次相关功能修改

lideyin 4 år sedan
förälder
incheckning
9fafb1f3a6

+ 4 - 3
src/modules/examwork/view/examInfo.vue

@@ -217,12 +217,13 @@
                     <el-dropdown-item>
                     <el-dropdown-item>
                       <el-button
                       <el-button
                         :disabled="
                         :disabled="
-                          rolePrivileges.update_exam &&
-                            (scope.row.examType == 'OFFLINE' ||
-                              scope.row.examType == 'ONLINE' ||
+                          !(
+                            rolePrivileges.update_exam &&
+                            (scope.row.examType == 'ONLINE' ||
                               scope.row.examType == 'ONLINE_HOMEWORK') &&
                               scope.row.examType == 'ONLINE_HOMEWORK') &&
                             scope.row.specialSettingsEnabled &&
                             scope.row.specialSettingsEnabled &&
                             scope.row.specialSettingsType == 'STAGE_BASED'
                             scope.row.specialSettingsType == 'STAGE_BASED'
+                          )
                         "
                         "
                         size="mini"
                         size="mini"
                         type="primary"
                         type="primary"

+ 217 - 66
src/modules/examwork/view/examStudent.vue

@@ -14,14 +14,34 @@
               filterable
               filterable
               v-model="formSearch.examId"
               v-model="formSearch.examId"
               placeholder="请选择"
               placeholder="请选择"
+              @change="handleExamChange4Search"
             >
             >
               <el-option
               <el-option
                 v-for="item in examList4Search"
                 v-for="item in examList4Search"
                 :label="item.name"
                 :label="item.name"
                 :value="item.id"
                 :value="item.id"
                 :key="item.id"
                 :key="item.id"
-              >
-              </el-option>
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="场次">
+            <el-select
+              clearable
+              :disabled="examStageDisabled4Search"
+              class="input"
+              :remote-method="queryExamStages4Search"
+              remote
+              :loading="queryExamStages4SearchLoading"
+              :filterable="false"
+              v-model="formSearch.examStageId"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in examStageList4Search"
+                :label="item.stageOrder"
+                :value="item.id"
+                :key="item.id"
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item label="姓名">
           <el-form-item label="姓名">
@@ -61,8 +81,7 @@
                 :label="item.name + ' - ' + item.code"
                 :label="item.name + ' - ' + item.code"
                 :value="item.id"
                 :value="item.id"
                 :key="item.id"
                 :key="item.id"
-              >
-              </el-option>
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item label="学习中心">
           <el-form-item label="学习中心">
@@ -82,8 +101,7 @@
                 :label="item.name + ' - ' + item.code"
                 :label="item.name + ' - ' + item.code"
                 :value="item.id"
                 :value="item.id"
                 :key="item.id"
                 :key="item.id"
-              >
-              </el-option>
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
           <el-form-item label="采集人">
           <el-form-item label="采集人">
@@ -123,39 +141,38 @@
               type="primary"
               type="primary"
               icon="el-icon-search"
               icon="el-icon-search"
               @click="resetPageAndSearchForm"
               @click="resetPageAndSearchForm"
-              >查询
-            </el-button>
+              >查询</el-button
+            >
             <el-button
             <el-button
               size="small"
               size="small"
               icon="el-icon-refresh"
               icon="el-icon-refresh"
               @click="resetSearchForm"
               @click="resetSearchForm"
+              >重置</el-button
             >
             >
-              重置
-            </el-button>
             <el-button
             <el-button
               v-if="rolePrivileges.add_examStudent"
               v-if="rolePrivileges.add_examStudent"
               size="small"
               size="small"
               type="primary"
               type="primary"
               icon="el-icon-plus"
               icon="el-icon-plus"
               @click="openAddingDialog"
               @click="openAddingDialog"
-              >新增
-            </el-button>
+              >新增</el-button
+            >
             <el-button
             <el-button
               v-if="rolePrivileges.del_examStudent"
               v-if="rolePrivileges.del_examStudent"
               size="small"
               size="small"
               type="danger"
               type="danger"
               icon="el-icon-delete"
               icon="el-icon-delete"
               @click="deleteStuByExam"
               @click="deleteStuByExam"
-              >批次删除
-            </el-button>
+              >批次删除</el-button
+            >
             <el-button
             <el-button
               v-if="rolePrivileges.copy_examStudent"
               v-if="rolePrivileges.copy_examStudent"
               size="small"
               size="small"
               type="primary"
               type="primary"
               icon="el-icon-document"
               icon="el-icon-document"
               @click="copy"
               @click="copy"
-              >复制
-            </el-button>
+              >复制</el-button
+            >
           </el-form-item>
           </el-form-item>
         </el-form>
         </el-form>
 
 
@@ -189,8 +206,8 @@
             icon="el-icon-delete"
             icon="el-icon-delete"
             @click="deleteStuBatch"
             @click="deleteStuBatch"
             :disabled="noBatchSelected"
             :disabled="noBatchSelected"
-            >删除
-          </el-button>
+            >删除</el-button
+          >
         </div>
         </div>
 
 
         <div style="width: 100%;margin-bottom: 10px;"></div>
         <div style="width: 100%;margin-bottom: 10px;"></div>
@@ -220,6 +237,7 @@
                 clearable
                 clearable
                 v-model="examStudentForm.examId"
                 v-model="examStudentForm.examId"
                 placeholder="请选择"
                 placeholder="请选择"
+                @change="handleExamChange4InsertOrUpdate"
               >
               >
                 <el-option
                 <el-option
                   v-for="item in examList4InsertOrUpdate"
                   v-for="item in examList4InsertOrUpdate"
@@ -227,8 +245,27 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="场次">
+              <el-select
+                class="input"
+                :disabled="examStageDisabled4Insert"
+                :remote-method="queryExamStages4InsertOrUpdate"
+                remote
+                clearable
+                :loading="queryExamStages4InsertOrUpdateLoading"
+                :filterable="false"
+                v-model="examStudentForm.examStageId"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in examStageList4InsertOrUpdate"
+                  :label="item.stageOrder"
+                  :value="item.id"
+                  :key="item.id"
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="姓名" prop="studentName">
             <el-form-item label="姓名" prop="studentName">
@@ -273,8 +310,7 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="课程" prop="courseId">
             <el-form-item label="课程" prop="courseId">
@@ -294,8 +330,7 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="试卷类型" prop="paperType">
             <el-form-item label="试卷类型" prop="paperType">
@@ -309,8 +344,7 @@
                   :label="item"
                   :label="item"
                   :value="item"
                   :value="item"
                   :key="item"
                   :key="item"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="专业">
             <el-form-item label="专业">
@@ -399,8 +433,27 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="场次">
+              <el-select
+                class="input"
+                :disabled="examStageDisabled4Update"
+                :remote-method="queryExamStages4InsertOrUpdate"
+                remote
+                clearable
+                :loading="queryExamStages4InsertOrUpdateLoading"
+                :filterable="false"
+                v-model="examStudentForm.examStageId"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in examStageList4InsertOrUpdate"
+                  :label="item.stageOrder"
+                  :value="item.id"
+                  :key="item.id"
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="姓名" prop="studentName">
             <el-form-item label="姓名" prop="studentName">
@@ -446,8 +499,7 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="课程" prop="courseId">
             <el-form-item label="课程" prop="courseId">
@@ -468,8 +520,7 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="试卷类型" prop="paperType">
             <el-form-item label="试卷类型" prop="paperType">
@@ -483,8 +534,7 @@
                   :label="item"
                   :label="item"
                   :value="item"
                   :value="item"
                   :key="item"
                   :key="item"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="专业">
             <el-form-item label="专业">
@@ -570,8 +620,7 @@
                   :label="item.name"
                   :label="item.name"
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <el-form-item label="目标考试批次" prop="targetExamId">
             <el-form-item label="目标考试批次" prop="targetExamId">
@@ -591,8 +640,7 @@
                   :value="item.id"
                   :value="item.id"
                   :key="item.id"
                   :key="item.id"
                   :disabled="!item.enable"
                   :disabled="!item.enable"
-                >
-                </el-option>
+                ></el-option>
               </el-select>
               </el-select>
             </el-form-item>
             </el-form-item>
             <div style="text-align: center;">
             <div style="text-align: center;">
@@ -712,33 +760,48 @@
               </el-popover>
               </el-popover>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-          <el-table-column prop="studentCode" label="学号" sortable>
-          </el-table-column>
-          <el-table-column prop="ext2" label="身份证号" width="120" sortable>
-          </el-table-column>
-          <el-table-column prop="orgName" label="学习中心" width="120" sortable>
-          </el-table-column>
+          <el-table-column
+            prop="studentCode"
+            label="学号"
+            sortable
+          ></el-table-column>
+          <el-table-column
+            prop="ext2"
+            label="身份证号"
+            width="120"
+            sortable
+          ></el-table-column>
+          <el-table-column
+            prop="orgName"
+            label="学习中心"
+            width="120"
+            sortable
+          ></el-table-column>
           <el-table-column
           <el-table-column
             prop="examName"
             prop="examName"
             label="考试名称"
             label="考试名称"
             width="120"
             width="120"
             sortable
             sortable
-          >
-          </el-table-column>
+          ></el-table-column>
+          <el-table-column
+            v-if="!examStageDisabled4Search"
+            prop="examStageOrder"
+            label="场次"
+            width="120"
+            sortable
+          ></el-table-column>
           <el-table-column
           <el-table-column
             prop="courseName"
             prop="courseName"
             label="课程名称"
             label="课程名称"
             width="120"
             width="120"
             sortable
             sortable
-          >
-          </el-table-column>
+          ></el-table-column>
           <el-table-column
           <el-table-column
             prop="updateTime"
             prop="updateTime"
             width="155"
             width="155"
             label="更新时间"
             label="更新时间"
             sortable
             sortable
-          >
-          </el-table-column>
+          ></el-table-column>
           <el-table-column width="50" label="状态">
           <el-table-column width="50" label="状态">
             <span slot-scope="scope">
             <span slot-scope="scope">
               <span v-if="scope.row.enable">
               <span v-if="scope.row.enable">
@@ -774,9 +837,8 @@
                   :disabled="!scope.row.photoPath"
                   :disabled="!scope.row.photoPath"
                   icon="el-icon-picture"
                   icon="el-icon-picture"
                   @click="showPhoto(scope.row)"
                   @click="showPhoto(scope.row)"
+                  >查看照片</el-button
                 >
                 >
-                  查看照片
-                </el-button>
                 <el-button
                 <el-button
                   v-if="rolePrivileges.update_examStudent"
                   v-if="rolePrivileges.update_examStudent"
                   size="mini"
                   size="mini"
@@ -784,9 +846,8 @@
                   plain
                   plain
                   icon="el-icon-edit"
                   icon="el-icon-edit"
                   @click="openUpdateDialog(scope.row)"
                   @click="openUpdateDialog(scope.row)"
+                  >编辑</el-button
                 >
                 >
-                  编辑
-                </el-button>
 
 
                 <el-dropdown
                 <el-dropdown
                   style="margin-left: 10px;"
                   style="margin-left: 10px;"
@@ -796,7 +857,8 @@
                   "
                   "
                 >
                 >
                   <el-button type="primary" plain size="mini">
                   <el-button type="primary" plain size="mini">
-                    更多<i class="el-icon-arrow-down el-icon--right"></i>
+                    更多
+                    <i class="el-icon-arrow-down el-icon--right"></i>
                   </el-button>
                   </el-button>
                   <el-dropdown-menu slot="dropdown">
                   <el-dropdown-menu slot="dropdown">
                     <el-dropdown-item>
                     <el-dropdown-item>
@@ -806,9 +868,9 @@
                         type="danger"
                         type="danger"
                         icon="el-icon-delete"
                         icon="el-icon-delete"
                         @click="deleteExamStudent(scope.row)"
                         @click="deleteExamStudent(scope.row)"
-                        >删除
-                      </el-button></el-dropdown-item
-                    >
+                        >删除</el-button
+                      >
+                    </el-dropdown-item>
                     <el-dropdown-item>
                     <el-dropdown-item>
                       <el-button
                       <el-button
                         v-if="
                         v-if="
@@ -821,8 +883,8 @@
                         plain
                         plain
                         icon="el-icon-check"
                         icon="el-icon-check"
                         @click="enableExamStudent(scope.row)"
                         @click="enableExamStudent(scope.row)"
-                        >启用
-                      </el-button>
+                        >启用</el-button
+                      >
                       <el-button
                       <el-button
                         v-else-if="
                         v-else-if="
                           rolePrivileges.change_exam_student_availability
                           rolePrivileges.change_exam_student_availability
@@ -831,8 +893,8 @@
                         type="danger"
                         type="danger"
                         icon="el-icon-close"
                         icon="el-icon-close"
                         @click="disableExamStudent(scope.row)"
                         @click="disableExamStudent(scope.row)"
-                        >禁用
-                      </el-button>
+                        >禁用</el-button
+                      >
                     </el-dropdown-item>
                     </el-dropdown-item>
                   </el-dropdown-menu>
                   </el-dropdown-menu>
                 </el-dropdown>
                 </el-dropdown>
@@ -849,8 +911,7 @@
             @size-change="handleSizeChange"
             @size-change="handleSizeChange"
             layout="total, sizes, prev, pager, next, jumper"
             layout="total, sizes, prev, pager, next, jumper"
             :total="total"
             :total="total"
-          >
-          </el-pagination>
+          ></el-pagination>
         </div>
         </div>
 
 
         <el-dialog title="错误提示" v-model="errDialog">
         <el-dialog title="错误提示" v-model="errDialog">
@@ -939,9 +1000,11 @@ export default {
       uploadHeaders: {},
       uploadHeaders: {},
       orgList4Search: [],
       orgList4Search: [],
       getOrgList4SearchLoading: false,
       getOrgList4SearchLoading: false,
+      examInfo4Search: null,
       formSearch: {
       formSearch: {
         rootOrgId: "",
         rootOrgId: "",
         examId: "",
         examId: "",
+        examStageId: "",
         studentCode: "",
         studentCode: "",
         studentName: "",
         studentName: "",
         orgId: "",
         orgId: "",
@@ -962,12 +1025,18 @@ export default {
       examList4CopyFrom: [],
       examList4CopyFrom: [],
       examList4CopyTo: [],
       examList4CopyTo: [],
 
 
+      examStageList4Search: [],
+      examStageList4InsertOrUpdate: [],
+
       queryExams4SearchLoading: false,
       queryExams4SearchLoading: false,
       queryExams4InsertOrUpdateLoading: false,
       queryExams4InsertOrUpdateLoading: false,
       queryExams4ImportLoading: false,
       queryExams4ImportLoading: false,
       queryExams4CopyFromLoading: false,
       queryExams4CopyFromLoading: false,
       queryExams4CopyToLoading: false,
       queryExams4CopyToLoading: false,
 
 
+      queryExamStages4SearchLoading: false,
+      queryExamStages4InsertOrUpdateLoading: false,
+
       selectedExamStuIds: [],
       selectedExamStuIds: [],
       addingStudentDialog: false,
       addingStudentDialog: false,
       updateStudentDialog: false,
       updateStudentDialog: false,
@@ -988,6 +1057,7 @@ export default {
       examStudentForm: {
       examStudentForm: {
         id: null,
         id: null,
         examId: "",
         examId: "",
+        examStageId: "",
         courseId: null,
         courseId: null,
         studentId: null,
         studentId: null,
         studentName: "",
         studentName: "",
@@ -1029,7 +1099,11 @@ export default {
           { required: true, message: "请输入姓名", trigger: "blur" }
           { required: true, message: "请输入姓名", trigger: "blur" }
         ],
         ],
         identityNumber: [
         identityNumber: [
-          { required: true, validator: validateIdentityNumber, trigger: "blur" }
+          {
+            required: true,
+            validator: validateIdentityNumber,
+            trigger: "blur"
+          }
         ],
         ],
         courseId: [
         courseId: [
           {
           {
@@ -1066,7 +1140,10 @@ export default {
             trigger: "change"
             trigger: "change"
           }
           }
         ]
         ]
-      }
+      },
+      examStageDisabled4Search: true,
+      examStageDisabled4Insert: true,
+      examStageDisabled4Update: true
     };
     };
   },
   },
 
 
@@ -1155,6 +1232,42 @@ export default {
           }
           }
         });
         });
     },
     },
+
+    queryExamStages4Search(name) {
+      this.queryExamStages(this.formSearch.examId, name, "search");
+    },
+    queryExamStages4InsertOrUpdate(name) {
+      this.queryExamStages(this.examStudentForm.examId, name, "insertOrUpdate");
+    },
+    queryExamStages(examId, name, where) {
+      console.log("queryExams; name: " + name);
+
+      this.$httpWithMsg
+        .get(
+          EXAM_WORK_API +
+            "/examStage/queryByNameLike?examId=" +
+            examId +
+            "&enable=true&name=" +
+            name
+        )
+        .then(response => {
+          if ("search" == where) {
+            this.queryExamStages4SearchLoading = false;
+            this.examStageList4Search = response.data;
+          } else if ("insertOrUpdate" == where) {
+            this.queryExamStages4InsertOrUpdateLoading = false;
+            this.examStageList4InsertOrUpdate = response.data;
+          }
+        })
+        .catch(response => {
+          console.log(response);
+          if ("search" == where) {
+            this.queryExamStages4SearchLoading = false;
+          } else if ("insertOrUpdate" == where) {
+            this.queryExamStages4InsertOrUpdateLoading = false;
+          }
+        });
+    },
     getOrgList4Search(orgName) {
     getOrgList4Search(orgName) {
       this.getOrgList(orgName, "search");
       this.getOrgList(orgName, "search");
     },
     },
@@ -1772,6 +1885,44 @@ export default {
           // this.searchForm();
           // this.searchForm();
         });
         });
       }
       }
+    },
+    handleExamChange4Search(value) {
+      if (this.examList4Search.length > 0) {
+        let examArr = this.examList4Search.filter(p => p.id == value);
+        if (examArr && examArr.length > 0) {
+          let exam = examArr[0];
+          if (
+            exam.specialSettingsEnabled &&
+            exam.specialSettingsType == "STAGE_BASED"
+          ) {
+            this.examStageDisabled4Search = false;
+            this.examStageDisabled4Update = false; //编辑同查询一致,考试批次不可修改
+            this.queryExamStages4Search("");
+            this.queryExamStages(value, "", "insertOrUpdate");
+          } else {
+            this.examStageList4Search = [];
+            this.examStageDisabled4Search = true;
+            this.examStageDisabled4Update = true;
+          }
+        }
+      }
+    },
+    handleExamChange4InsertOrUpdate(value) {
+      if (this.examList4InsertOrUpdate.length > 0) {
+        let examArr = this.examList4InsertOrUpdate.filter(p => p.id == value);
+        if (examArr && examArr.length > 0) {
+          let exam = examArr[0];
+          if (
+            exam.specialSettingsEnabled &&
+            exam.specialSettingsType == "STAGE_BASED"
+          ) {
+            this.examStageDisabled4Insert = false;
+            this.queryExamStages4InsertOrUpdate("");
+          } else {
+            this.examStageDisabled4Insert = true;
+          }
+        }
+      }
     }
     }
   },
   },
   created() {
   created() {

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

@@ -160,7 +160,7 @@
                       class="input"
                       class="input"
                     >
                     >
                       <el-radio label="ORG_BASED">机构特殊设置</el-radio>
                       <el-radio label="ORG_BASED">机构特殊设置</el-radio>
-                      <el-radio label="STAGE_BASED">场次特殊设置</el-radio>
+                      <!-- <el-radio label="STAGE_BASED">场次特殊设置</el-radio> -->
                     </el-radio-group>
                     </el-radio-group>
                   </el-form-item>
                   </el-form-item>
                 </el-row>
                 </el-row>

+ 8 - 1
src/modules/examwork/view/stageSpecialSettings.vue

@@ -882,7 +882,14 @@ export default {
           });
           });
         }
         }
       } else {
       } else {
-        debugger;
+        if (this.addStageForm.timeRange0.length == 0) {
+          this.$notify({
+            showClose: true,
+            message: "日期范围不允许为空",
+            type: "error"
+          });
+          return;
+        }
         //按天创建
         //按天创建
         let st0 = this.addStageForm.timeRange0[0];
         let st0 = this.addStageForm.timeRange0[0];
         let et0 = this.addStageForm.timeRange0[1];
         let et0 = this.addStageForm.timeRange0[1];