zhangjie 2 years ago
parent
commit
4824a3a122

+ 2 - 2
src/api.js

@@ -236,9 +236,9 @@ export const deleteGradeGroupStudent = (subject, groupId) => {
 export const markUserList = ({ workId, subjectId }) => {
   return $get("/api/markers", { workId, subject: subjectId });
 };
-export const userGroupList = ({ workId, subject }) => {
+export const userGroupList = datas => {
   // workId=&subject=&stage=  stage非必填
-  return $get("/api/admin/users/list_group", { workId, subject });
+  return $get("/api/admin/users/list_group", datas);
 };
 export const leaderMarkUserList = datas => {
   // workId=&subject=&stage=&markerId=

+ 1 - 2
src/assets/styles/mark.less

@@ -734,7 +734,7 @@
     color: @white;
     padding: 8px;
     border-radius: @box-border-radius-small;
-    text-align: left;
+    text-align: center;
 
     + .action-grade-info {
       margin-top: -10px;
@@ -760,7 +760,6 @@
       font-size: 54px;
       text-align: center;
       border-radius: 50%;
-      margin-left: 50px;
       color: #fff;
     }
     .grade-info-none {

+ 5 - 5
src/modules/grading/GradingProgress.vue

@@ -67,13 +67,13 @@
       </Col>
       <Col span="12">
         <div class="part-box progress-table">
-          <table
-            class="table table-noborder kzz-table"
-            v-if="kzzInfo.length && IS_LEVEL"
-          >
+          <table class="table table-noborder kzz-table" v-if="kzzInfo.length">
             <tr v-for="kzz in kzzInfo" :key="kzz.loginName">
               <td>{{ kzz.loginName }}</td>
-              <td style="text-align:left">仲裁:{{ kzz.arbitrated }}</td>
+              <td v-if="IS_LEVEL" style="text-align:left">
+                仲裁:{{ kzz.arbitrated }}
+              </td>
+              <td v-else></td>
             </tr>
           </table>
 

+ 16 - 3
src/modules/grading/components/RibbonSetDialog.vue

@@ -13,10 +13,16 @@
       :label-width="140"
     >
       <FormItem label="启用键盘">
-        <i-switch v-model="ribbonSetModal.keyboardMark"></i-switch>
+        <i-switch
+          v-model="ribbonSetModal.keyboardMark"
+          @change="keyboardMarkChange"
+        ></i-switch>
       </FormItem>
       <FormItem v-if="ribbonSetModal.keyboardMark" label="需要回车提交">
-        <i-switch v-model="ribbonSetModal.needEnterSubmit"></i-switch>
+        <i-switch
+          v-model="ribbonSetModal.needEnterSubmit"
+          :disabled="IS_SCORE"
+        ></i-switch>
       </FormItem>
       <FormItem label="显示快捷档位导航">
         <i-switch v-model="ribbonSetModal.fastLevelNav"></i-switch>
@@ -42,7 +48,10 @@ export default {
     };
   },
   computed: {
-    ...mapState("marker", ["ribbonSet"])
+    ...mapState("marker", ["ribbonSet", "curSubject"]),
+    IS_SCORE() {
+      return this.curSubject.stage === "SCORE";
+    }
   },
   mounted() {
     const userId = this.$ls.get("user", { id: "" }).id;
@@ -66,6 +75,10 @@ export default {
     open() {
       this.modalIsShow = true;
     },
+    keyboardMarkChange() {
+      if (this.ribbonSetModal.keyboardMark && this.IS_SCORE)
+        this.ribbonSetModal.needEnterSubmit = true;
+    },
     submit() {
       const userId = this.$ls.get("user", { id: "" }).id;
       const cacheRibbonSet = window.localStorage.getItem("ribbonSet");

+ 2 - 2
src/modules/grading/marker/MarkerStatistics.vue

@@ -21,10 +21,10 @@
         <tr v-for="(step, sindex) in steps.levelStep" :key="sindex">
           <td>{{ step.name | levelNameFilter }}</td>
           <td>{{ step.gcount }}</td>
-          <td>{{ step.gpercent }}%</td>
+          <td>{{ step.finalTotal }}</td>
           <td>{{ step.pt }}%</td>
           <td>{{ step.count }}</td>
-          <td>{{ step.percent }}%</td>
+          <td>{{ step.finalKdTotal }}</td>
           <!-- <td>{{ step.kdpt !== null ? step.kdpt + "%" : "" }}</td> -->
         </tr>
       </table>

+ 32 - 5
src/modules/main/QualityAnalysis.vue

@@ -47,6 +47,16 @@
               transfer
             ></DatePicker>
           </FormItem>
+          <FormItem v-if="roughLevelEnable">
+            <Select v-model="stage" placeholder="档位类型">
+              <Option
+                v-for="(val, key) in levelTypes"
+                :key="key"
+                :value="key"
+                :label="val"
+              ></Option>
+            </Select>
+          </FormItem>
           <FormItem>
             <Button
               class="btn-form-search"
@@ -135,7 +145,8 @@ import {
   callbackReport,
   subjectList,
   areaList,
-  userGroupList
+  userGroupList,
+  getParamsSet
 } from "@/api";
 import EchartRender from "@/components/EchartRender";
 import QualityAnalysisExport from "./components/QualityAnalysisExport";
@@ -163,6 +174,12 @@ export default {
       areas: [],
       groups: [],
       dataReady: false,
+      stage: "LEVEL",
+      roughLevelEnable: false,
+      levelTypes: {
+        ROUGH_LEVEL: "粗分档",
+        LEVEL: "细分档"
+      },
       // export
       renderExportPage: false,
       renderChartData: {},
@@ -175,6 +192,7 @@ export default {
   },
   methods: {
     async initData() {
+      await this.getParamsSetInfo();
       await this.getSubjects();
       this.filter.subject = this.subjects[0].subject;
       this.filter.areaCode = "";
@@ -185,6 +203,10 @@ export default {
       // 首次打开页面不再立即查询统计
       // this.toSearch();
     },
+    async getParamsSetInfo() {
+      const data = await getParamsSet(this.$route.params.workId);
+      this.roughLevelEnable = data.levelConfig.roughLevelEnable;
+    },
     async getSubjects() {
       const data = await subjectList(this.filter.workId);
       this.subjects = data.filter(item => item.enable);
@@ -207,10 +229,13 @@ export default {
       }
     },
     async getGroupList() {
-      const data = await userGroupList({
+      let filterData = {
         workId: this.filter.workId,
         subject: this.filter.subject
-      });
+      };
+      if (this.roughLevelEnable) filterData.stage = this.stage;
+
+      const data = await userGroupList(filterData);
       this.groups = data.map(item => {
         return {
           id: item.groupId,
@@ -265,9 +290,11 @@ export default {
       this.distanceReportData = null;
       this.deviationReportData = null;
       this.callbackReportData = null;
-      const datas = filterObjNull({
+      let filterData = {
         ...this.filter
-      });
+      };
+      if (this.roughLevelEnable) filterData.stage = this.stage;
+      const datas = filterObjNull(filterData);
       const requests = [
         levelsPropReport(datas),
         deviationReport(datas),

+ 2 - 1
src/modules/mark/components/MarkAction.vue

@@ -544,7 +544,8 @@ export default {
       }
     },
     checkKeyCodeValid(keyCode) {
-      return keyCode >= 49 && keyCode <= 58;
+      // 0-9
+      return keyCode >= 48 && keyCode <= 57;
     },
     checkScoreValid(score) {
       const minScore = this.scores[0];