Browse Source

11111111111

chenken 6 năm trước cách đây
mục cha
commit
724435396c

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

@@ -4,6 +4,8 @@ import alreadyAudited from "../views/alreadyAudited.vue";
 import reexamine from "../views/reexamine.vue";
 import illegalityNameList from "../views/illegalityNameList.vue";
 import scoreStatistics from "../views/scoreStatistics.vue";
+import examDetail from "../views/examDetail.vue";
+import examScheduling from "../views/examScheduling.vue";
 export default [
   {
     path: "/oe/absent",
@@ -34,5 +36,15 @@ export default [
     path: "/oe/scoreStatistics",
     name: "scoreStatistics",
     component: scoreStatistics
+  },
+  {
+    path: "/oe/examDetail",
+    name: "examDetail",
+    component: examDetail
+  },
+  {
+    path: "/oe/examScheduling",
+    name: "examScheduling",
+    component: examScheduling
   }
 ];

+ 206 - 0
src/modules/oe/views/examDetail.vue

@@ -0,0 +1,206 @@
+<template>
+  <el-container>
+    <el-header> <div class="header-title">考试明细</div> </el-header>
+    <el-main>
+      <commonFormVue :form="form" :getExamCondition="getExamCondition">
+        <el-col :span="8">
+          <el-form-item label="开始时间">
+            <el-date-picker
+              v-model="form.startTime"
+              type="datetime"
+              placeholder="选择日期时间"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="结束时间">
+            <el-date-picker
+              v-model="form.endTime"
+              type="datetime"
+              placeholder="选择日期时间"
+            >
+            </el-date-picker
+          ></el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="采集人">
+            <el-input v-model="form.infoCollector" placeholder="采集人">
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </commonFormVue>
+      <el-row>
+        <el-col :span="24">
+          <el-button @click="search" size="medium" type="primary"
+            >查询</el-button
+          >
+        </el-col>
+      </el-row>
+      <el-row class="margin-top-10"
+        ><el-col :span="24">
+          <el-table
+            v-loading="tableLoading"
+            element-loading-text="数据加载中"
+            ref="multipleTable"
+            @selection-change="handleSelectionChange"
+            :data="tableData"
+            border
+          >
+            <el-table-column sortable label="学习中心" prop="orgName">
+            </el-table-column>
+            <el-table-column sortable label="姓名" prop="studentName">
+            </el-table-column>
+            <el-table-column sortable label="身份证号" prop="identityNumber">
+            </el-table-column>
+            <el-table-column sortable label="学号" prop="studentCode">
+            </el-table-column>
+            <el-table-column sortable label="课程" prop="courseNameAndCode">
+            </el-table-column>
+            <el-table-column sortable label="课程层次" prop="courseLevel">
+            </el-table-column>
+            <el-table-column sortable label="年级" prop="grade">
+            </el-table-column>
+            <el-table-column sortable label="学生电话" prop="phone">
+            </el-table-column>
+            <el-table-column sortable label="采集人" prop="infoCollector">
+            </el-table-column>
+            <el-table-column sortable label="考试次数" prop="examOrder">
+            </el-table-column>
+            <el-table-column sortable label="开考时间" prop="paperStartTime">
+            </el-table-column>
+            <el-table-column sortable label="交卷时间" prop="paperSubmitTime">
+            </el-table-column>
+            <el-table-column sortable label="持续时间" prop="examTime">
+            </el-table-column>
+            <el-table-column
+              sortable
+              label="校验成功率"
+              prop="faceSuccessPercent"
+            >
+            </el-table-column>
+            <el-table-column sortable label="续考次数" prop="continuedCount">
+            </el-table-column>
+            <el-table-column sortable label="卷面总分" prop="paperTotalScore">
+            </el-table-column>
+            <el-table-column sortable label="是否违纪" prop="isIllegality">
+            </el-table-column>
+            <el-table-column sortable label="是否提交" prop="isSubmit">
+            </el-table-column>
+            <el-table-column label="详情">
+              <el-button>调卷</el-button>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page.sync="form.pageNo"
+              :page-sizes="[10, 30, 50, 100]"
+              :page-size="form.pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+            >
+            </el-pagination></div></el-col
+      ></el-row>
+    </el-main>
+  </el-container>
+</template>
+<script>
+import { mapState } from "vuex";
+import commonFormVue from "../component/commonForm.vue";
+import { disciplineTypeList } from "../constants/constants";
+export default {
+  components: { commonFormVue },
+  data() {
+    return {
+      disciplineTypeList: disciplineTypeList,
+      total: 0,
+      tableLoading: false,
+      form: {
+        examRecordDataId: null,
+        hasStranger: null,
+        courseId: null,
+        courseLevel: null,
+        examId: null,
+        examRecordId: null,
+        faceSuccessPercentLower: null,
+        faceSuccessPercentUpper: null,
+        identityNumber: null,
+        orgId: null,
+        studentCode: null,
+        studentName: null,
+        isWarn: null,
+        pageNo: 1,
+        pageSize: "10",
+        rootOrgId: null,
+        startTime: null,
+        endTime: null,
+        infoCollector: null
+      },
+
+      getExamCondition: {
+        params: {
+          name: "",
+          examTypes: "ONLINE#OFFLINE"
+        },
+        filterCondition: ""
+      },
+      tableData: []
+    };
+  },
+  computed: {
+    ...mapState({ user: state => state.user })
+  },
+  methods: {
+    search() {
+      if (!this.form.examId) {
+        this.$notify({
+          title: "警告",
+          message: "请选择考试批次",
+          type: "warning",
+          duration: 1000
+        });
+        return false;
+      }
+      this.tableLoading = true;
+      this.$http
+        .post("/api/ecs_oe_admin/exam/record/detail/list", this.form)
+        .then(response => {
+          if (response.data) {
+            this.tableData = response.data.content;
+            this.total = response.data.totalElements;
+          } else {
+            this.tableData = [];
+          }
+          this.tableLoading = false;
+        });
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    /**
+     * pagesize改变时触发
+     */
+    handleSizeChange(val) {
+      this.form.pageSize = val;
+      this.search();
+    },
+    /**
+     * 当前页改变时触发
+     */
+    handleCurrentChange() {
+      this.search();
+    }
+  },
+  created() {}
+};
+</script>
+<style scope>
+.el-row {
+  position: static !important;
+}
+.margin-top-10 {
+  margin-top: 10px;
+}
+</style>

+ 187 - 0
src/modules/oe/views/examScheduling.vue

@@ -0,0 +1,187 @@
+<template>
+  <el-container>
+    <el-header> <div class="header-title">考试进度详情</div> </el-header>
+    <el-main>
+      <commonFormVue :form="form" :getExamCondition="getExamCondition">
+        <el-col :span="8">
+          <el-form-item label="完成状态">
+            <el-select v-model="form.finished" clearable placeholder="全部">
+              <el-option value="false" label="已完成"></el-option>
+              <el-option value="true" label="未完成"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="采集人">
+            <el-input v-model="form.infoCollector" placeholder="采集人">
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </commonFormVue>
+      <el-row>
+        <el-col :span="24">
+          <el-button @click="search" size="medium" type="primary"
+            >查询</el-button
+          >
+        </el-col>
+      </el-row>
+      <el-row class="margin-top-10"
+        ><el-col :span="24">
+          <el-table
+            v-loading="tableLoading"
+            element-loading-text="数据加载中"
+            ref="multipleTable"
+            @selection-change="handleSelectionChange"
+            :data="tableData"
+            border
+          >
+            <el-table-column sortable label="学习中心" prop="orgName">
+            </el-table-column>
+            <el-table-column sortable label="姓名" prop="studentName">
+            </el-table-column>
+            <el-table-column sortable label="身份证号" prop="identityNumber">
+            </el-table-column>
+            <el-table-column sortable label="学号" prop="studentCode">
+            </el-table-column>
+            <el-table-column sortable label="课程" prop="courseName">
+            </el-table-column>
+            <el-table-column sortable label="课程层次" prop="courseLevel">
+            </el-table-column>
+            <el-table-column sortable label="专业" prop="specialtyName">
+            </el-table-column>
+            <el-table-column sortable label="已考次数" prop="normalExamTimes">
+            </el-table-column>
+            <el-table-column sortable label="学生电话" prop="phone">
+            </el-table-column>
+            <el-table-column sortable label="年级" prop="grade">
+            </el-table-column>
+            <el-table-column sortable label="采集人" prop="infoCollector">
+            </el-table-column>
+            <el-table-column sortable label="完成状态" prop="finished">
+            </el-table-column>
+            <el-table-column label="操作">
+              <template>
+                <el-button size="mini" type="success" icon="el-icon-success"
+                  >查看考题</el-button
+                >
+                <el-button size="mini" type="success" icon="el-icon-success"
+                  >下载考题</el-button
+                >
+                <el-button size="mini" type="success" icon="el-icon-success"
+                  >上传作答</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <div class="block">
+            <el-pagination
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page.sync="form.pageNo"
+              :page-sizes="[10, 30, 50, 100]"
+              :page-size="form.pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+            >
+            </el-pagination></div></el-col
+      ></el-row>
+    </el-main>
+  </el-container>
+</template>
+<script>
+import { mapState } from "vuex";
+import commonFormVue from "../component/commonForm.vue";
+export default {
+  components: { commonFormVue },
+  data() {
+    return {
+      total: 0,
+      tableLoading: false,
+      form: {
+        examRecordDataId: null,
+        hasStranger: null,
+        courseId: null,
+        courseLevel: null,
+        examId: null,
+        examRecordId: null,
+        faceSuccessPercentLower: null,
+        faceSuccessPercentUpper: null,
+        livenessSuccessPercentLower: null,
+        livenessSuccessPercentUpper: null,
+        identityNumber: null,
+        orgId: null,
+        studentCode: null,
+        studentName: null,
+        isWarn: null,
+        pageNo: 1,
+        pageSize: 10
+      },
+
+      getExamCondition: {
+        params: {
+          name: "",
+          examTypes: "ONLINE#OFFLINE"
+        },
+        filterCondition: ""
+      },
+      tableData: []
+    };
+  },
+  computed: {
+    ...mapState({ user: state => state.user })
+  },
+  methods: {
+    search() {
+      if (!this.form.examId) {
+        this.$notify({
+          title: "警告",
+          message: "请选择考试批次",
+          type: "warning",
+          duration: 1000
+        });
+        return false;
+      }
+      this.tableLoading = true;
+      this.$http
+        .post("/api/ecs_oe_admin/exam/student/all/list", this.form)
+        .then(response => {
+          if (response.data) {
+            this.tableData = response.data.content;
+            this.total = response.data.totalElements;
+          } else {
+            this.tableData = [];
+          }
+          this.tableLoading = false;
+        });
+    },
+    selectable(row) {
+      return row.isWarn;
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    /**
+     * pagesize改变时触发
+     */
+    handleSizeChange(val) {
+      this.form.pageSize = val;
+      this.search();
+    },
+    /**
+     * 当前页改变时触发
+     */
+    handleCurrentChange() {
+      this.search();
+    }
+  },
+  created() {}
+};
+</script>
+<style scope>
+.el-row {
+  position: static !important;
+}
+.margin-top-10 {
+  margin-top: 10px;
+}
+</style>

+ 1 - 1
src/modules/oe/views/scoreStatistics.vue

@@ -1,6 +1,6 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">违纪名单</div> </el-header>
+    <el-header> <div class="header-title">成绩统计</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">