前端仓库地址
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.2 KiB

3 weeks ago
  1. <template>
  2. <div class="assignment-list">
  3. <h1>课堂作业 Assignments</h1>
  4. <div v-for="assignment in assignments" :key="assignment.id" class="assignment-item">
  5. <h2>{{ assignment.name }}</h2>
  6. <p>截止时间: {{ assignment.deadline }}</p>
  7. <p>提交状态: {{ assignment.status }}</p>
  8. <button @click="goToAssignment(assignment.id)">写作业</button>
  9. </div>
  10. </div>
  11. </template>
  12. <script>
  13. import axios from 'axios';
  14. export default {
  15. data() {
  16. return {
  17. assignments: []
  18. };
  19. },
  20. created() {
  21. this.fetchAssignments();
  22. },
  23. methods: {
  24. fetchAssignments() {
  25. axios.get('/api/assignments')
  26. .then(response => {
  27. this.assignments = response.data;
  28. })
  29. .catch(error => {
  30. console.error('Error fetching assignments:', error);
  31. });
  32. },
  33. goToAssignment(assignmentId) {
  34. this.$router.push({ name: 'DoAssignment', params: { assignmentId } });
  35. }
  36. }
  37. };
  38. </script>
  39. <style scoped>
  40. .assignment-list {
  41. padding: 20px;
  42. }
  43. .assignment-item {
  44. border: 1px solid #ddd;
  45. padding: 10px;
  46. margin-bottom: 10px;
  47. }
  48. </style>