DetailTargetScore.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div class="target-score-detail">
  3. <el-dialog
  4. class="page-dialog"
  5. :visible.sync="modalIsShow"
  6. :close-on-click-modal="false"
  7. :close-on-press-escape="false"
  8. append-to-body
  9. fullscreen
  10. @open="checkChange"
  11. >
  12. <div slot="title">
  13. 成绩管理<span class="color-gray ml-2"
  14. >{{ course.courseName }}({{ course.courseCode }})</span
  15. >
  16. </div>
  17. <div class="mb-4 tab-btns">
  18. <el-button
  19. v-for="tab in tabs"
  20. :key="tab.val"
  21. size="medium"
  22. :type="curTab == tab.val ? 'primary' : 'default'"
  23. @click="selectMenu(tab.val)"
  24. >{{ tab.name }}
  25. </el-button>
  26. </div>
  27. <div v-if="modalIsShow">
  28. <component :is="curTab" :course="course"></component>
  29. </div>
  30. <div slot="footer"></div>
  31. </el-dialog>
  32. </div>
  33. </template>
  34. <script>
  35. import TargetScoreNormal from "./TargetScoreNormal.vue";
  36. import TargetScoreEnd from "./TargetScoreEnd.vue";
  37. import { targetReportChangeCheck } from "../../api";
  38. export default {
  39. name: "target-score-detail",
  40. components: {
  41. TargetScoreNormal,
  42. TargetScoreEnd,
  43. },
  44. props: {
  45. course: {
  46. type: Object,
  47. default() {
  48. return {};
  49. },
  50. },
  51. },
  52. data() {
  53. return {
  54. modalIsShow: false,
  55. curTab: "TargetScoreEnd",
  56. tabs: [
  57. {
  58. name: "期末成绩管理",
  59. val: "TargetScoreEnd",
  60. },
  61. {
  62. name: "平时成绩管理",
  63. val: "TargetScoreNormal",
  64. },
  65. ],
  66. };
  67. },
  68. methods: {
  69. cancel() {
  70. this.modalIsShow = false;
  71. },
  72. open() {
  73. this.modalIsShow = true;
  74. },
  75. selectMenu(tab) {
  76. this.curTab = tab;
  77. },
  78. async checkChange() {
  79. const res = await targetReportChangeCheck({
  80. cultureProgramId: this.course.cultureProgramId,
  81. courseId: this.course.courseId,
  82. report: false,
  83. });
  84. if (res.courseTargetChange) {
  85. this.$notify.warning("课程目标与已保存不一致,请重新设置权重!");
  86. }
  87. if (res.evaluationChange) {
  88. this.$notify.warning(
  89. "评价方式与已保存不一致,请重新设置权重及导入新的平时成绩!"
  90. );
  91. }
  92. if (res.targetScoreChange) {
  93. this.$notify.warning(res.targetScoreChangeStr);
  94. }
  95. },
  96. },
  97. };
  98. </script>