index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div>
  3. <page-header
  4. :routes="[{ name: '项目详情', path: 'code' }]"
  5. :tab-list="[
  6. { name: '构建', path: `code/${$route.params.homeworkId}/${$route.params.projectId}/build` },
  7. { name: '部署', path: `code/${$route.params.homeworkId}/${$route.params.projectId}/deploy` },
  8. { name: '测试', path: `code/${$route.params.homeworkId}/${$route.params.projectId}/test` }
  9. ]"
  10. >
  11. <template slot="title">项目名称</template>
  12. <template slot="content">
  13. <div>项目详情</div>
  14. </template>
  15. </page-header>
  16. <page-body>
  17. <router-view :projectDetail="projectDetail"/>
  18. </page-body>
  19. </div>
  20. </template>
  21. <script>
  22. import { mapState } from "vuex";
  23. import { getProjectDetail } from "@/api/codehw";
  24. import PageHeader from "@/components/PageHeader";
  25. import PageBody from "@/components/PageBody/index";
  26. export default {
  27. components: {
  28. PageBody,
  29. PageHeader
  30. },
  31. computed: {
  32. ...mapState({
  33. course: state => state.course.currentCourse
  34. })
  35. },
  36. data() {
  37. return {
  38. projectDetail: {}
  39. };
  40. },
  41. async mounted() {
  42. const detail = await getProjectDetail(this.course.id);
  43. this.projectDetail = detail.data;
  44. }
  45. };
  46. </script>
  47. <style lang="scss" scoped>
  48. .top-nav-section {
  49. padding: 0 40px;
  50. }
  51. </style>