homework.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <template>
  2. <div id="homework">
  3. <el-row>
  4. <el-col :span="24" class="style">
  5. <el-col :span="24" class="top">
  6. <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
  7. </el-col>
  8. <el-col :span="24" class="main">
  9. <el-col :span="24" class="leaveBtn"> </el-col>
  10. <el-col :span="24" class="leaveList">
  11. <workList :workLists="workLists" :display="display"></workList>
  12. </el-col>
  13. <el-col :span="24" class="foot">
  14. <footInfo></footInfo>
  15. </el-col>
  16. </el-col>
  17. </el-col>
  18. </el-row>
  19. </div>
  20. </template>
  21. <script>
  22. import NavBar from '@/layout/common/topInfo.vue';
  23. import footInfo from '@/layout/common/footInfo.vue';
  24. import workList from '@/layout/user/workList.vue';
  25. import { mapState, createNamespacedHelpers, mapGetters } from 'vuex';
  26. const { mapActions: mapClass } = createNamespacedHelpers('classes');
  27. const { mapActions: mapLesson } = createNamespacedHelpers('lesson');
  28. const { mapActions: mapTask } = createNamespacedHelpers('task');
  29. const { mapActions: mapSubject } = createNamespacedHelpers('subject');
  30. export default {
  31. name: 'homework',
  32. props: {},
  33. components: {
  34. NavBar, //头部导航
  35. workList,
  36. footInfo,
  37. },
  38. data: () => ({
  39. workLists: [],
  40. display: '',
  41. navShow: true,
  42. title: '',
  43. isleftarrow: '',
  44. }),
  45. mounted() {
  46. this.title = this.$route.meta.title;
  47. this.isleftarrow = this.$route.meta.isleftarrow;
  48. },
  49. watch: {
  50. $route(to, from) {
  51. this.title = to.meta.title;
  52. this.isleftarrow = to.meta.isleftarrow;
  53. },
  54. },
  55. created() {
  56. this.search();
  57. },
  58. computed: {
  59. ...mapState(['user']),
  60. },
  61. methods: {
  62. ...mapTask({ list: 'query', add: 'create', fet: 'fetch', updates: 'update' }),
  63. ...mapClass({ classinfo: 'fetch', classquery: 'query' }),
  64. ...mapLesson({ lessonList: 'query', lessonadd: 'create', lessonfet: 'fetch', lessonupdates: 'update' }),
  65. ...mapSubject({ subjectList: 'query', subjectListadd: 'create', subjectListfet: 'fetch', subjectListpdates: 'update' }),
  66. async search() {
  67. let classid = this.user.classid;
  68. const ress = await this.classinfo(classid);
  69. let lessonid = ress.data.lessonid;
  70. const res = await this.lessonList({ lessonid });
  71. const resout = await this.list();
  72. for (const val of resout.data) {
  73. for (const tyl of res.data) {
  74. var crr = tyl.lessons.filter(item => item.subid);
  75. this.$set(this, `workLists`, crr);
  76. }
  77. console.log(crr);
  78. var arr = crr.filter(item => item.subid === val.code);
  79. for (const att of arr) {
  80. att.display = 'second';
  81. }
  82. }
  83. },
  84. },
  85. };
  86. </script>
  87. <style lang="less" scoped>
  88. .style {
  89. width: 100%;
  90. min-height: 667px;
  91. position: relative;
  92. background-color: #f9fafc;
  93. }
  94. .top {
  95. height: 46px;
  96. overflow: hidden;
  97. }
  98. .main {
  99. min-height: 570px;
  100. }
  101. .main .leaveBtn {
  102. text-align: center;
  103. padding: 15px 0;
  104. }
  105. .leaveList {
  106. position: relative;
  107. background-color: #f9fafc;
  108. }
  109. </style>