zhangjie 3 лет назад
Родитель
Сommit
d5d9dbcf39

+ 2 - 1
src/api/examwork-student.js

@@ -4,13 +4,14 @@ import { object2QueryString, encodePassword } from "@/utils/utils";
 
 export function searchStudents({
   enable,
+  photo,
   name = "",
   identity = "",
   pageNumber = 1,
   pageSize = 10,
 }) {
   const data = pickBy(
-    { identity, name, enable, pageNumber, pageSize },
+    { identity, name, photo, enable, pageNumber, pageSize },
     (v) => v !== ""
   );
   return httpApp.post("/api/admin/student/query?" + object2QueryString(data));

+ 0 - 2
src/components/ActivitySelect.vue

@@ -6,8 +6,6 @@
     @change="select"
     :style="styles"
     filterable
-    remote
-    :remote-method="search"
     clearable
   >
     <el-option

+ 0 - 2
src/components/CourseSelect.vue

@@ -6,8 +6,6 @@
     @change="select"
     :style="styles"
     filterable
-    remote
-    :remote-method="search"
     clearable
   >
     <el-option

+ 0 - 2
src/components/ExamRoomSelect.vue

@@ -6,8 +6,6 @@
     @change="select"
     :style="styles"
     filterable
-    remote
-    :remote-method="search"
     clearable
   >
     <el-option

+ 1 - 3
src/components/ExamSelect.vue

@@ -3,12 +3,10 @@
     v-model="selected"
     class="size-select"
     placeholder="请选择"
-    @change="select"
     :style="styles"
     filterable
-    remote
-    :remote-method="search"
     clearable
+    @change="select"
   >
     <el-option
       v-for="item in optionList"

+ 25 - 5
src/features/examwork/StudentManagement/StudentManagement.vue

@@ -15,6 +15,20 @@
           <el-form-item label="状态">
             <StateSelect v-model="form.enable"></StateSelect>
           </el-form-item>
+          <el-form-item label="底照是否上传">
+            <el-select
+              v-model="form.photo"
+              placeholder="底照是否上传"
+              clearable
+            >
+              <el-option
+                v-for="(val, key) in BOOLEAN_TYPE"
+                :key="key"
+                :value="key * 1"
+                :label="val"
+              ></el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item>
             <el-button type="primary" @click="handleCurrentChange(0)"
               >查询</el-button
@@ -35,9 +49,9 @@
       <el-table-column width="200" label="证件号">
         <span slot-scope="scope">{{ scope.row.identity }}</span>
       </el-table-column>
-      <el-table-column width="100" label="机构">
+      <!-- <el-table-column width="100" label="机构">
         <span slot-scope="scope">{{ scope.row.orgName }}</span>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column width="120" label="状态">
         <span slot-scope="scope">{{
           scope.row.enable | zeroOneEnableDisableFilter
@@ -126,7 +140,7 @@ import {
   resetStudentPassword,
 } from "@/api/examwork-student";
 import StudentManagementDialog from "./StudentManagementDialog";
-
+import { BOOLEAN_TYPE } from "@/constant/constants";
 export default {
   name: "StudentManagement",
   data() {
@@ -135,6 +149,7 @@ export default {
         name: "",
         identity: "",
         enable: null,
+        photo: null,
       },
       tableData: [],
       currentPage: 1,
@@ -143,6 +158,7 @@ export default {
       basePhotoDialogVisible: false,
       selectedBasePhoto: null,
       selectedStudent: {},
+      BOOLEAN_TYPE,
     };
   },
   components: { StudentManagementDialog },
@@ -151,13 +167,17 @@ export default {
   },
   methods: {
     async searchForm() {
-      const res = await searchStudents({
+      let datas = {
         enable: this.form.enable,
         identity: this.form.identity,
         name: this.form.name,
         pageNumber: this.currentPage,
         pageSize: this.pageSize,
-      });
+      };
+      if (this.form.photo !== null && this.form.photo !== "") {
+        datas.photo = !!this.form.photo;
+      }
+      const res = await searchStudents(datas);
       this.tableData = res.data.data.records;
       // this.tableData.forEach(
       //   (v) =>

+ 17 - 8
src/features/examwork/StudentManagement/StudentManagementDialog.vue

@@ -2,20 +2,14 @@
   <div>
     <el-dialog
       ref="dialog"
-      title="考试记录"
-      width="800px"
+      :title="title"
+      width="900px"
       top="20px"
       :visible.sync="visible"
       @open="dialogOpen"
       @close="closeDialog"
     >
       <el-table :data="tableData" stripe style="width: 100%;">
-        <el-table-column width="100" label="姓名">
-          <span slot-scope="scope">{{ scope.row.name }}</span>
-        </el-table-column>
-        <el-table-column width="120" label="证件号">
-          <span slot-scope="scope">{{ scope.row.identity }}</span>
-        </el-table-column>
         <el-table-column label="批次名称">
           <span slot-scope="scope">{{ scope.row.examName }}</span>
         </el-table-column>
@@ -27,6 +21,16 @@
             scope.row.status | examRecordStatusFilter
           }}</span>
         </el-table-column>
+        <el-table-column width="170" label="开考时间">
+          <span slot-scope="scope">{{
+            scope.row.firstStartTime | datetimeFilter
+          }}</span>
+        </el-table-column>
+        <el-table-column width="170" label="交卷时间">
+          <span slot-scope="scope">{{
+            scope.row.finishTime | datetimeFilter
+          }}</span>
+        </el-table-column>
         <el-table-column width="100" label="操作">
           <template slot-scope="scope">
             <el-button
@@ -72,6 +76,11 @@ export default {
       this.total = 0;
     },
   },
+  computed: {
+    title() {
+      return `考试记录-${this.student.name}-${this.student.identity}`;
+    },
+  },
   data() {
     return {
       visible: false,