Explorar o código

提交网考代码

chenken %!s(int64=6) %!d(string=hai) anos
pai
achega
82c0453a23

+ 24 - 2
src/modules/oe/component/commonForm.vue

@@ -25,6 +25,7 @@
     <el-col :span="8">
       <el-form-item label="学习中心">
         <el-select
+          v-if="currentPagePrivileges.ORG_FIND_ALL"
           v-model="form.orgId"
           filterable
           remote
@@ -42,6 +43,12 @@
           >
           </el-option>
         </el-select>
+        <el-input
+          v-model="orgName"
+          v-if="!currentPagePrivileges.ORG_FIND_ALL"
+          :disabled="true"
+        >
+        </el-input>
       </el-form-item>
     </el-col>
     <el-col :span="8">
@@ -95,15 +102,21 @@
 </template>
 <script>
 import { COURSE_LEVELS } from "../constants/constants";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 import { mapState } from "vuex";
 export default {
   props: ["form", "getExamCondition"],
+  mixins: [pagePrivilege],
   data() {
     return {
       examList: [],
       courseList: [],
       orgList: [],
-      courseLevels: COURSE_LEVELS
+      courseLevels: COURSE_LEVELS,
+      currentPagePrivileges: {
+        ORG_FIND_ALL: false //查询所有学习中心
+      },
+      orgName: ""
     };
   },
   computed: {
@@ -175,7 +188,16 @@ export default {
   },
   created() {
     this.getExams("");
-    this.getOrgs("");
+    //如果没有查询所有学习中心的权限
+    if (!this.currentPagePrivileges.ORG_FIND_ALL) {
+      var userId = this.user.userId;
+      this.$http.get("/api/ecs_core/user/" + userId).then(response => {
+        this.form.orgId = response.data.orgId;
+        this.orgName = response.data.orgName;
+      });
+    } else {
+      this.getOrgs("");
+    }
   }
 };
 </script>

+ 7 - 6
src/modules/oe/component/examSummaryLine.vue

@@ -65,7 +65,7 @@ export default {
             type: "line",
             data: []
           };
-          var yAxis = { maxScale1: 0, maxScale2: 0 };
+          var yAxis_maxScale1 = 0;
           for (var i = 0; i < courseProgressDataList.length; i++) {
             xAxisData.push(courseProgressDataList[i].courseName);
             seriesBar.data.push(courseProgressDataList[i].allNum);
@@ -73,14 +73,15 @@ export default {
             seriesLine2.data.push(
               courseProgressDataList[i].completedProportion
             );
-            yAxis.maxScale1 = courseProgressDataList[0].allNum;
-            yAxis.maxScale2 = courseProgressDataList[0].completedProportion;
+            if (courseProgressDataList[i].allNum > yAxis_maxScale1) {
+              yAxis_maxScale1 = courseProgressDataList[i].allNum;
+            }
           }
           var optionData = {
             legendData: ["计划数", "完成数", "完成比(%)"],
             xAxis: { data: xAxisData },
             series: [seriesBar, seriesLine1, seriesLine2],
-            yAxis
+            yAxis_maxScale1
           };
           this.buildOptions(optionData);
         });
@@ -123,7 +124,7 @@ export default {
             type: "value",
             name: "人次",
             min: 0,
-            max: optionData.yAxis.maxScale1,
+            max: optionData.yAxis_maxScale1,
             interval: 50,
             axisLabel: {
               formatter: "{value} "
@@ -133,7 +134,7 @@ export default {
             type: "value",
             name: "完成比例",
             min: 0,
-            max: optionData.yAxis.maxScale2,
+            max: 100,
             interval: 20,
             axisLabel: {
               formatter: "{value} %"

+ 39 - 0
src/modules/oe/mixin/pagePrivilege.js

@@ -0,0 +1,39 @@
+export default {
+  data() {
+    return {};
+  },
+  created: function() {
+    this.getPagePrivilege();
+  },
+  methods: {
+    getPagePrivilege() {
+      var groupCode = "NETEXAM_WORK_MENUS";
+      this.$http
+        .post(
+          "/api/ecs_core/rolePrivilege/getUserPrivileges?groupCode=" +
+            groupCode +
+            "&full=" +
+            false
+        )
+        .then(response => {
+          var pagePermissions = this.filterPagePermission(response.data);
+          if (pagePermissions.length > 0) {
+            for (var currentPagePrivilege in this.currentPagePrivileges) {
+              if (pagePermissions.indexOf(currentPagePrivilege) > -1) {
+                this.currentPagePrivileges[currentPagePrivilege] = true;
+              }
+            }
+          }
+        });
+    },
+    filterPagePermission(allpermissions) {
+      var pagePermissions = [];
+      for (var i = 0; i < allpermissions.length; i++) {
+        if (allpermissions[i].ext1 == "PAGE") {
+          pagePermissions.push(allpermissions[i].code);
+        }
+      }
+      return pagePermissions;
+    }
+  }
+};

+ 31 - 26
src/modules/oe/views/absent.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">缺考登记</div> </el-header>
     <el-main>
       <commonFormVue
         :form="form"
@@ -15,33 +14,36 @@
             :form="form"
             :exportUrl="exportUrl"
             :exportFileName="exportFileName"
+            v-show="currentPagePrivileges.ABSENT_EXPORT"
           ></commonExportVue>
         </el-col>
       </el-row>
-
-      <el-table
-        v-loading="tableLoading"
-        element-loading-text="数据加载中"
-        height="300px"
-        :data="tableData"
-        border
-      >
-        <el-table-column type="index" label="序号"> </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="orgName">
-        </el-table-column>
-        <el-table-column sortable label="考点" prop="examSiteName">
-        </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>
+      <el-row class="margin-top-10">
+        <el-col :span="24">
+          <el-table
+            v-loading="tableLoading"
+            element-loading-text="数据加载中"
+            :data="tableData"
+            border
+          >
+            <el-table-column type="index" label="序号"> </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="orgName">
+            </el-table-column>
+            <el-table-column sortable label="考点" prop="examSiteName">
+            </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>
+        </el-col>
+      </el-row>
       <div class="block">
         <el-pagination
           @size-change="handleSizeChange"
@@ -61,8 +63,10 @@
 import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import commonExportVue from "../component/commonExport.vue";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, commonExportVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       total: 0,
@@ -89,7 +93,8 @@ export default {
       },
       tableData: [],
       exportUrl: "/api/ecs_oe_admin/exam/student/unfinished/list/export",
-      exportFileName: "缺考登记"
+      exportFileName: "缺考登记",
+      currentPagePrivileges: { ABSENT_EXPORT: false }
     };
   },
   computed: {

+ 29 - 8
src/modules/oe/views/alreadyAudited.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">监考已审</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -10,10 +9,16 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="审核结果">
-            <el-select v-model="form.status" clearable placeholder="全部">
+            <el-select
+              v-if="currentPagePrivileges.INVIGILATE_AUDIT_STATUS"
+              v-model="form.status"
+              clearable
+              placeholder="全部"
+            >
               <el-option value="PASS" label="通过"></el-option>
               <el-option value="UN_PASS" label="不通过"></el-option>
             </el-select>
+            <el-input placeholder="不通过" :disabled="true"> </el-input>
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -27,7 +32,7 @@
                 v-for="item in auditExplainList"
                 :key="item.name"
                 :label="item.desc"
-                :value="item.code"
+                :value="item.name"
               >
               </el-option>
             </el-select>
@@ -60,10 +65,14 @@
             <el-table-column sortable label="考试ID">
               <template slot-scope="scope">
                 <el-button
+                  v-show="currentPagePrivileges.SNAPSHOT_DETAILS"
                   @click="gotoCaptureDetail(scope.row.examRecordDataId);"
                   type="text"
-                  >{{ scope.row.examRecordDataId }}</el-button
-                >
+                  >{{ scope.row.examRecordDataId }}
+                </el-button>
+                <span v-show="!currentPagePrivileges.SNAPSHOT_DETAILS">
+                  {{ scope.row.examRecordDataId }}
+                </span>
               </template>
             </el-table-column>
             <el-table-column sortable label="姓名" prop="studentName">
@@ -120,8 +129,10 @@
 import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import { AUDIT_EXPLAIN_LIST } from "../constants/constants";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       auditExplainList: AUDIT_EXPLAIN_LIST,
@@ -141,7 +152,7 @@ export default {
         studentName: null,
         isWarn: null,
         pageNo: 1,
-        pageSize: "10",
+        pageSize: 10,
         disciplineType: "",
         auditUserName: "",
         status: ""
@@ -155,7 +166,11 @@ export default {
         },
         filterCondition: "IS_FACE_ENABLE"
       },
-      tableData: []
+      tableData: [],
+      currentPagePrivileges: {
+        INVIGILATE_AUDIT_STATUS: false, //数据状态
+        SNAPSHOT_DETAILS: false //详情查看
+      }
     };
   },
   computed: {
@@ -208,7 +223,13 @@ export default {
       this.$router.push({ path: "/oe/captureDetail/" + examRecordDataId });
     }
   },
-  created() {}
+  created() {
+    if (this.currentPagePrivileges.INVIGILATE_AUDIT_STATUS) {
+      this.form.status = "";
+    } else {
+      this.form.status = "UN_PASS";
+    }
+  }
 };
 </script>
 <style scoped>

+ 19 - 6
src/modules/oe/views/awaitingAudit.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">监考待审</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -74,7 +73,7 @@
           >
         </el-col>
       </el-row>
-      <el-row>
+      <el-row v-show="currentPagePrivileges.PANEING_BATCHAUDIT">
         <el-col :span="24" style="text-align: right;">
           <el-button-group>
             <el-button
@@ -110,10 +109,14 @@
             <el-table-column sortable label="考试ID">
               <template slot-scope="scope">
                 <el-button
+                  v-show="currentPagePrivileges.SNAPSHOT_DETAILS"
                   @click="gotoCaptureDetail(scope.row.dataId);"
                   type="text"
-                  >{{ scope.row.dataId }}</el-button
-                >
+                  >{{ scope.row.dataId }}
+                </el-button>
+                <span v-show="!currentPagePrivileges.SNAPSHOT_DETAILS">
+                  {{ scope.row.dataId }}
+                </span>
               </template>
             </el-table-column>
             <el-table-column
@@ -171,7 +174,10 @@
               label="人脸真实性比率(%)"
               prop="baiduFaceLivenessSuccessPercent"
             ></el-table-column>
-            <el-table-column label="操作">
+            <el-table-column
+              label="操作"
+              v-if="currentPagePrivileges.PENDING_OPERATE"
+            >
               <template slot-scope="scope">
                 <el-button
                   v-if="scope.row.isWarn"
@@ -220,8 +226,10 @@
 import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import auditVue from "../component/audit.vue";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, auditVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       total: 0,
@@ -263,7 +271,12 @@ export default {
       },
       tableData: [],
       multipleSelection: [],
-      batchAuditBtnDisabled: true
+      batchAuditBtnDisabled: true,
+      currentPagePrivileges: {
+        PANEING_BATCHAUDIT: false,
+        PENDING_OPERATE: false,
+        SNAPSHOT_DETAILS: false
+      }
     };
   },
   computed: {

+ 1 - 2
src/modules/oe/views/captureDetail.vue

@@ -258,11 +258,10 @@ export default {
 .photorow {
   border: 1px solid #ebeef5;
   text-align: center;
-  padding-left: 30px;
 }
 .photocol {
   position: relative;
-  margin-top: 5px;
+  margin: 10px 10px 0 10px;
 }
 .photo {
   display: block;

+ 23 - 18
src/modules/oe/views/examDetail.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">考试明细</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -36,6 +35,7 @@
             >查询</el-button
           >
           <commonExportVue
+            v-show="currentPagePrivileges.EXAM_DETAIL_EXPORT"
             :form="form"
             :exportUrl="exportUrl"
             :exportFileName="exportFileName"
@@ -55,31 +55,25 @@
             <el-table-column fixed sortable label="考试ID">
               <template slot-scope="scope">
                 <el-button
+                  v-show="currentPagePrivileges.SNAPSHOT_DETAILS"
                   @click="gotoCaptureDetail(scope.row.dataId);"
                   type="text"
-                  >{{ scope.row.dataId }}</el-button
-                >
+                  >{{ scope.row.dataId }}
+                </el-button>
+                <span v-show="!currentPagePrivileges.SNAPSHOT_DETAILS">
+                  {{ scope.row.dataId }}
+                </span>
               </template>
             </el-table-column>
             <el-table-column fixed sortable label="学习中心" prop="orgName">
             </el-table-column>
             <el-table-column fixed sortable label="姓名" prop="studentName">
             </el-table-column>
-            <el-table-column
-              fixed
-              sortable
-              label="身份证号"
-              prop="identityNumber"
-            >
+            <el-table-column sortable label="身份证号" prop="identityNumber">
             </el-table-column>
-            <el-table-column fixed sortable label="学号" prop="studentCode">
+            <el-table-column sortable label="学号" prop="studentCode">
             </el-table-column>
-            <el-table-column
-              fixed
-              sortable
-              label="课程"
-              prop="courseNameAndCode"
-            >
+            <el-table-column sortable label="课程" prop="courseNameAndCode">
             </el-table-column>
             <el-table-column sortable label="课程层次" prop="courseLevel">
             </el-table-column>
@@ -111,7 +105,11 @@
             </el-table-column>
             <el-table-column sortable label="是否提交" prop="isSubmit">
             </el-table-column>
-            <el-table-column fixed="right" label="详情">
+            <el-table-column
+              fixed="right"
+              label="详情"
+              v-if="currentPagePrivileges.EXAM_QUERY_GETPAPER"
+            >
               <template slot-scope="scope">
                 <el-button
                   v-show="scope.row.examType == 'ONLINE'"
@@ -150,8 +148,10 @@ import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import commonExportVue from "../component/commonExport.vue";
 import { DISCIPLINE_TYPE_LIST } from "../constants/constants";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, commonExportVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       disciplineTypeList: DISCIPLINE_TYPE_LIST,
@@ -188,7 +188,12 @@ export default {
       },
       tableData: [],
       exportUrl: "/api/ecs_oe_admin/exam/record/detail/list/export",
-      exportFileName: "考试明细"
+      exportFileName: "考试明细",
+      currentPagePrivileges: {
+        EXAM_DETAIL_EXPORT: false, //导出
+        SNAPSHOT_DETAILS: false, //详情查看
+        EXAM_QUERY_GETPAPER: false //调卷
+      }
     };
   },
   computed: {

+ 7 - 2
src/modules/oe/views/examScheduling.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">考试进度详情</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -24,6 +23,7 @@
             >查询</el-button
           >
           <commonExportVue
+            v-show="currentPagePrivileges.EXAM_PARTICULARS_EXPORT"
             :form="form"
             :exportUrl="exportUrl"
             :exportFileName="exportFileName"
@@ -158,8 +158,10 @@
 import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import commonExportVue from "../component/commonExport.vue";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, commonExportVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       uploadAnswerDialogVisible: false,
@@ -196,7 +198,10 @@ export default {
       exportUrl: "/api/ecs_oe_admin/exam/student/all/list/export",
       exportFileName: "考试进度详情",
       currentOfflineExamRecordDataId: "",
-      offlineAnswerFile: ""
+      offlineAnswerFile: "",
+      currentPagePrivileges: {
+        EXAM_PARTICULARS_EXPORT: false //导出
+      }
     };
   },
   computed: {

+ 0 - 1
src/modules/oe/views/examSummary.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">考试概览</div> </el-header>
     <el-main>
       <el-row>
         <el-col :span="24">

+ 15 - 5
src/modules/oe/views/illegalityNameList.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">违纪名单</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -14,7 +13,7 @@
                 v-for="item in disciplineTypeList"
                 :key="item.name"
                 :label="item.desc"
-                :value="item.code"
+                :value="item.name"
               >
               </el-option>
             </el-select>
@@ -27,6 +26,7 @@
             >查询</el-button
           >
           <commonExportVue
+            v-show="currentPagePrivileges.BREACH_THE_PRINCIPLE_EXPORT"
             :form="form"
             :exportUrl="exportUrl"
             :exportFileName="exportFileName"
@@ -46,10 +46,14 @@
             <el-table-column sortable label="考试ID">
               <template slot-scope="scope">
                 <el-button
+                  v-show="currentPagePrivileges.SNAPSHOT_DETAILS"
                   @click="gotoCaptureDetail(scope.row.examRecordDataId);"
                   type="text"
-                  >{{ scope.row.examRecordDataId }}</el-button
-                >
+                  >{{ scope.row.examRecordDataId }}
+                </el-button>
+                <span v-show="!currentPagePrivileges.SNAPSHOT_DETAILS">
+                  {{ scope.row.examRecordDataId }}
+                </span>
               </template>
             </el-table-column>
             <el-table-column sortable label="姓名" prop="studentName">
@@ -101,8 +105,10 @@ import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import commonExportVue from "../component/commonExport.vue";
 import { DISCIPLINE_TYPE_LIST } from "../constants/constants";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, commonExportVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       disciplineTypeList: DISCIPLINE_TYPE_LIST,
@@ -138,7 +144,11 @@ export default {
       },
       tableData: [],
       exportUrl: "/api/ecs_oe_admin/exam/audit/discipline/list/export",
-      exportFileName: "违纪名单"
+      exportFileName: "违纪名单",
+      currentPagePrivileges: {
+        BREACH_THE_PRINCIPLE_EXPORT: false,
+        SNAPSHOT_DETAILS: false //详情查看
+      }
     };
   },
   computed: {

+ 0 - 1
src/modules/oe/views/reexamine.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">设置重考</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
       </commonFormVue>

+ 17 - 7
src/modules/oe/views/scoreStatistics.vue

@@ -1,6 +1,5 @@
 <template>
   <el-container>
-    <el-header> <div class="header-title">成绩统计</div> </el-header>
     <el-main>
       <commonFormVue :form="form" :getExamCondition="getExamCondition">
         <el-col :span="8">
@@ -18,14 +17,15 @@
             >查询</el-button
           >
           <commonExportVue
+            v-show="currentPagePrivileges.SCORE_STATICS_EXPORT"
             :form="form"
             :exportUrl="exportUrl"
             :exportFileName="exportFileName"
           ></commonExportVue>
         </el-col>
       </el-row>
-      <el-row class="margin-top-10"
-        ><el-col :span="24">
+      <el-row class="margin-top-10">
+        <el-col :span="24">
           <el-table
             v-loading="tableLoading"
             element-loading-text="数据加载中"
@@ -34,11 +34,16 @@
             :data="tableData"
             border
           >
-            <el-table-column sortable label="学习中心" prop="orgName">
+            <el-table-column fixed sortable label="学习中心" prop="orgName">
             </el-table-column>
-            <el-table-column sortable label="姓名" prop="studentName">
+            <el-table-column fixed sortable label="姓名" prop="studentName">
             </el-table-column>
-            <el-table-column sortable label="身份证号" prop="identityNumber">
+            <el-table-column
+              fixed
+              sortable
+              label="身份证号"
+              prop="identityNumber"
+            >
             </el-table-column>
             <el-table-column sortable label="学号" prop="studentCode">
             </el-table-column>
@@ -83,8 +88,10 @@ import { mapState } from "vuex";
 import commonFormVue from "../component/commonForm.vue";
 import commonExportVue from "../component/commonExport.vue";
 import { DISCIPLINE_TYPE_LIST } from "../constants/constants";
+import pagePrivilege from "../mixin/pagePrivilege.js";
 export default {
   components: { commonFormVue, commonExportVue },
+  mixins: [pagePrivilege],
   data() {
     return {
       disciplineTypeList: DISCIPLINE_TYPE_LIST,
@@ -120,7 +127,10 @@ export default {
       },
       tableData: [],
       exportUrl: "/api/ecs_oe_admin/exam/score/statistic/list/export",
-      exportFileName: "成绩统计"
+      exportFileName: "成绩统计",
+      currentPagePrivileges: {
+        SCORE_STATICS_EXPORT: false //导出
+      }
     };
   },
   computed: {