homework.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. console.log(ress.data.lessonid);
  70. let lessonid = ress.data.lessonid;
  71. const res = await this.subjectList({ lessonid });
  72. console.log(res);
  73. const resout = await this.list();
  74. for (const val of resout.data) {
  75. // console.log(result.data.lessons);
  76. // var crr = result.data.lessons.filter(item => item.subid);
  77. this.$set(this, `workLists`, res.data);
  78. var arr = res.data.filter(item => item.name === val.name);
  79. console.log(arr);
  80. for (const att of arr) {
  81. att.display = 'second';
  82. }
  83. }
  84. },
  85. },
  86. };
  87. </script>
  88. <style lang="less" scoped>
  89. .style {
  90. width: 100%;
  91. min-height: 667px;
  92. position: relative;
  93. background-color: #f9fafc;
  94. }
  95. .top {
  96. height: 46px;
  97. overflow: hidden;
  98. }
  99. .main {
  100. min-height: 570px;
  101. }
  102. .main .leaveBtn {
  103. text-align: center;
  104. padding: 15px 0;
  105. }
  106. .leaveList {
  107. position: relative;
  108. background-color: #f9fafc;
  109. }
  110. </style>