zhangjie 7 месяцев назад
Родитель
Сommit
e00d7e6284

+ 3 - 5
src/modules/mark/components/ScoreCheckDetail.vue

@@ -282,11 +282,9 @@
           label="状态"
           width="80"
         ></el-table-column>
-        <el-table-column
-          prop="breachStatus"
-          label="违纪状态"
-          width="100"
-        ></el-table-column>
+        <el-table-column prop="breach" label="违纪状态" width="100">
+          <span slot-scope="scope">{{ scope.row.breach ? "违纪" : "" }}</span>
+        </el-table-column>
         <el-table-column
           prop="paperType"
           label="卷型"

+ 2 - 2
src/modules/print/api.js

@@ -126,8 +126,8 @@ export const printTaskTotalInfo = (datas) => {
 export const getPrintTaskPdf = (examDetailId) => {
   return $post("/api/admin/exam/print/task_view_pdf", { examDetailId });
 };
-export const downloadPrintTaskPdf = (ids) => {
-  return $post("/api/admin/exam/print/task_download_pdf", { ids });
+export const downloadPrintTaskPdf = (datas) => {
+  return $post("/api/admin/exam/print/task_download_pdf", datas);
 };
 export const rebuildPrintTaskPdf = (idList, type) => {
   return $postParam("/api/admin/data/task/reset_create_pdf", { idList, type });

+ 5 - 3
src/modules/print/views/PrintTaskManage.vue

@@ -831,9 +831,11 @@ export default {
       }
 
       this.loading = true;
-      const data = await downloadPrintTaskPdf(this.multipleSelection).catch(
-        () => {}
-      );
+      const data = await downloadPrintTaskPdf({
+        ids: this.multipleSelection,
+        semesterId: this.filter.semesterId,
+        examId: this.filter.examId,
+      }).catch(() => {});
       this.loading = false;
       if (!data) return;
 

+ 5 - 9
src/modules/target/components/target-score/DetailTargetScore.vue

@@ -26,7 +26,7 @@
       </div>
 
       <div v-if="modalIsShow">
-        <component :is="curTab" :course="course"></component>
+        <component :is="curTab"></component>
       </div>
 
       <div slot="footer"></div>
@@ -35,6 +35,7 @@
 </template>
 
 <script>
+import { mapState } from "vuex";
 import TargetScoreNormal from "./TargetScoreNormal.vue";
 import TargetScoreEnd from "./TargetScoreEnd.vue";
 import { targetReportChangeCheck } from "../../api";
@@ -45,14 +46,6 @@ export default {
     TargetScoreNormal,
     TargetScoreEnd,
   },
-  props: {
-    course: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
   data() {
     return {
       modalIsShow: false,
@@ -69,6 +62,9 @@ export default {
       ],
     };
   },
+  computed: {
+    ...mapState("target", ["course"]),
+  },
   methods: {
     cancel() {
       this.modalIsShow = false;

+ 4 - 8
src/modules/target/components/target-score/SetBlueDialog.vue

@@ -78,6 +78,7 @@
 </template>
 
 <script>
+import { mapState } from "vuex";
 import {
   endScorePaperPositiveDetail,
   endScorePaperPositiveSave,
@@ -90,14 +91,6 @@ import SelectBlueDimensionDialog from "./SelectBlueDimensionDialog.vue";
 export default {
   name: "SetBlueDialog",
   components: { SelectBlueDimensionDialog },
-  props: {
-    course: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
   data() {
     return {
       modalIsShow: false,
@@ -111,6 +104,9 @@ export default {
       unuseTargets: [],
     };
   },
+  computed: {
+    ...mapState("target", ["course"]),
+  },
   watch: {
     "course.obeCourseOutlineId": {
       immediate: true,

+ 12 - 12
src/modules/target/components/target-score/SyncPaperDialog.vue

@@ -46,35 +46,34 @@
 </template>
 
 <script>
+import { mapState, mapMutations } from "vuex";
+
 import { endScoreSyncPaperList, endScoreSync } from "../../api";
+
 const initFilter = { semesterId: "", examId: "", courseId: "" };
 
 export default {
   name: "SyncPaperDialog",
-  props: {
-    course: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
   data() {
     return {
       modalIsShow: false,
       loading: false,
-      filter: { ...initFilter },
       dataList: [],
     };
   },
+  computed: {
+    ...mapState("target", ["course"]),
+    filter() {
+      return this.$objAssign(initFilter, this.course);
+    },
+  },
   methods: {
+    ...mapMutations("target", ["setCourse"]),
     async getList() {
       const res = await endScoreSyncPaperList(this.filter);
       this.dataList = res || [];
     },
-    visibleChange() {
-      this.filter = this.$objAssign(initFilter, this.course);
-    },
+    visibleChange() {},
     cancel() {
       this.modalIsShow = false;
     },
@@ -96,6 +95,7 @@ export default {
 
       if (!res) return;
 
+      this.setCourse({ examId: row.examId, paperNumber: row.paperNumber });
       this.$message.success(`${res.success},错误:${res.error}`);
       this.$emit("modified");
       this.cancel();

+ 7 - 12
src/modules/target/components/target-score/TargetScoreEnd.vue

@@ -128,17 +128,17 @@
       </template>
     </import-file>
     <!-- SetBlueDialog -->
-    <set-blue-dialog ref="SetBlueDialog" :course="course"> </set-blue-dialog>
+    <set-blue-dialog ref="SetBlueDialog"> </set-blue-dialog>
     <!-- select papers -->
     <sync-paper-dialog
       ref="SyncPaperDialog"
-      :course="course"
       @modified="paperSynced"
     ></sync-paper-dialog>
   </div>
 </template>
 
 <script>
+import { mapState } from "vuex";
 import {
   endScoreListPage,
   endScoreEnable,
@@ -158,17 +158,9 @@ export default {
   name: "end-score-manage",
   components: { ModifyEndScore, SetBlueDialog, ImportFile, SyncPaperDialog },
   mixins: [templateDownload],
-  props: {
-    course: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
   data() {
     return {
-      filter: {
+      initFilter: {
         cultureProgramId: "",
         courseId: "",
         examId: "",
@@ -197,12 +189,15 @@ export default {
     };
   },
   computed: {
+    ...mapState("target", ["course"]),
+    filter() {
+      return this.$objAssign(this.initFilter, this.course);
+    },
     uploadData() {
       return pickByNotNull(this.filter);
     },
   },
   mounted() {
-    this.filter = this.$objAssign(this.filter, this.course);
     this.toPage(1);
     this.getBlueDetail();
   },

+ 8 - 10
src/modules/target/components/target-score/TargetScoreNormal.vue

@@ -113,6 +113,7 @@
 </template>
 
 <script>
+import { mapState } from "vuex";
 import { pickByNotNull } from "@/plugins/utils";
 import {
   normalScoreListPage,
@@ -127,17 +128,9 @@ import { downloadByApi } from "@/plugins/download";
 export default {
   name: "normal-score-manage",
   components: { ModifyNormalScore, ImportFile },
-  props: {
-    course: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
   data() {
     return {
-      filter: {
+      initFilter: {
         cultureProgramId: "",
         courseId: "",
         examId: "",
@@ -157,8 +150,13 @@ export default {
       downloading: false,
     };
   },
+  computed: {
+    ...mapState("target", ["course"]),
+    filter() {
+      return this.$objAssign(this.initFilter, this.course);
+    },
+  },
   async mounted() {
-    this.filter = this.$objAssign(this.filter, this.course);
     this.getEvaluation();
     await this.toPage(1);
   },

+ 32 - 18
src/modules/target/components/target-statistics/DetailTargetStatistics.vue

@@ -812,7 +812,7 @@ export default {
         },
         legend: {
           top: 0,
-          data: ["期望值", "达成值"],
+          data: ["达成值"],
           itemWidth: 12,
           itemHeight: 4,
           itemGap: 22,
@@ -880,14 +880,21 @@ export default {
               show: true,
               position: "top",
             },
-          },
-          {
-            name: "期望值",
-            type: "line",
-            symbol: "none",
-            data: this.courseTargetList.map(
-              (item) => this.courseBasicInfo.courseDegree || 0
-            ),
+            markLine: {
+              data: [
+                {
+                  name: "期望值",
+                  yAxis: this.courseBasicInfo.courseDegree,
+                  symbol: "none",
+                  symbolSize: 0,
+                  lineStyle: {
+                    color: "#f59a23",
+                    width: 2,
+                    type: "solid",
+                  },
+                },
+              ],
+            },
           },
         ],
       };
@@ -920,7 +927,7 @@ export default {
         },
         legend: {
           top: 0,
-          data: ["期望值", "达成值"],
+          data: ["达成值"],
           itemWidth: 12,
           itemHeight: 4,
           itemGap: 22,
@@ -981,14 +988,21 @@ export default {
             name: "达成值",
             type: "scatter",
             data: dataList.map((item) => item.value),
-          },
-          {
-            name: "期望值",
-            type: "line",
-            symbol: "none",
-            data: dataList.map(
-              (item) => this.courseBasicInfo.courseDegree || 0
-            ),
+            markLine: {
+              data: [
+                {
+                  name: "期望值",
+                  yAxis: this.courseBasicInfo.courseDegree,
+                  symbol: "none",
+                  symbolSize: 0,
+                  lineStyle: {
+                    color: "#f59a23",
+                    width: 2,
+                    type: "solid",
+                  },
+                },
+              ],
+            },
           },
         ],
       };

+ 5 - 0
src/modules/target/store.js

@@ -9,6 +9,8 @@ const state = {
     // 教学课程管理者(创建人)id 当前登录人和课程创建人一致时“教学班”“教师团队”两个页签才能编辑,否则只能查看
     courseCreateId: "",
   },
+  // 成绩管理的课程信息
+  course: {},
 };
 
 const mutations = {
@@ -18,6 +20,9 @@ const mutations = {
   resetState(state) {
     state.cwStatus = {};
   },
+  setCourse(state, data) {
+    state.course = Object.assign({}, state.course, data);
+  },
 };
 
 const actions = {

+ 4 - 5
src/modules/target/views/TargetScoreManage.vue

@@ -97,14 +97,12 @@
       </div>
     </div>
     <!-- DetailTargetScore -->
-    <detail-target-score
-      ref="DetailTargetScore"
-      :course="curRow"
-    ></detail-target-score>
+    <detail-target-score ref="DetailTargetScore"></detail-target-score>
   </div>
 </template>
 
 <script>
+import { mapMutations } from "vuex";
 import { targetScoreListPage } from "../api";
 import DetailTargetScore from "../components/target-score/DetailTargetScore.vue";
 
@@ -131,6 +129,7 @@ export default {
     this.search();
   },
   methods: {
+    ...mapMutations("target", ["setCourse"]),
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;
 
@@ -160,7 +159,7 @@ export default {
       if (this.defaultKeys.length === 2) this.search();
     },
     toDetail(row) {
-      this.curRow = row;
+      this.setCourse(row);
       this.$refs.DetailTargetScore.open();
     },
   },