浏览代码

Notes details page

master
kj1352 5 年前
父节点
当前提交
a053b30ee5
共有 7 个文件被更改,包括 187 次插入5 次删除
  1. +3
    -1
      src/app/app-routing.module.ts
  2. +2
    -0
      src/app/app.module.ts
  3. +30
    -0
      src/app/tabs/courses/notes-details/notes-details.component.html
  4. +89
    -0
      src/app/tabs/courses/notes-details/notes-details.component.scss
  5. +25
    -0
      src/app/tabs/courses/notes-details/notes-details.component.spec.ts
  6. +34
    -0
      src/app/tabs/courses/notes-details/notes-details.component.ts
  7. +4
    -4
      src/app/tabs/courses/video-chapter/video-chapter.component.html

+ 3
- 1
src/app/app-routing.module.ts 查看文件

@@ -4,6 +4,7 @@ import { WelcomeComponent } from './welcome/welcome.component';
import { TabsComponent } from './tabs/tabs.component';
import { DetailsComponent } from './tabs/courses/details/details.component';
import { VideoChapterComponent } from './tabs/courses/video-chapter/video-chapter.component';
import { NotesDetailsComponent } from './tabs/courses/notes-details/notes-details.component';

const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'welcome' },
@@ -12,7 +13,8 @@ const routes: Routes = [
{ component: TabsComponent, path: 'tabs/:subpage' },
{ component: DetailsComponent, path: 'course-details' },
{ component: DetailsComponent, path: 'course-details/:heading' },
{ component: VideoChapterComponent, path: 'video-chapter/:heading' }
{ component: VideoChapterComponent, path: 'video-chapter/:heading' },
{ component: NotesDetailsComponent, path: 'notes-details/:heading' }
];

@NgModule({


+ 2
- 0
src/app/app.module.ts 查看文件

@@ -13,6 +13,7 @@ import { ReportsComponent } from './tabs/reports/reports.component';
import { MoreComponent } from './tabs/more/more.component';
import { DetailsComponent } from './tabs/courses/details/details.component';
import { VideoChapterComponent } from './tabs/courses/video-chapter/video-chapter.component';
import { NotesDetailsComponent } from './tabs/courses/notes-details/notes-details.component';

@NgModule({
declarations: [
@@ -25,6 +26,7 @@ import { VideoChapterComponent } from './tabs/courses/video-chapter/video-chapte
MoreComponent,
DetailsComponent,
VideoChapterComponent,
NotesDetailsComponent,
],
imports: [
BrowserModule,


+ 30
- 0
src/app/tabs/courses/notes-details/notes-details.component.html 查看文件

@@ -0,0 +1,30 @@
<div class="page">
<header class="nav-header">
<button class="close-button" (click)="back()">
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/close.svg"></svg-icon>
</button>
<h5>
<svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/play-button.svg"></svg-icon>
<span> {{ heading }} </span>
</h5>
</header>

<h2> {{ heading }} </h2>

<div class="description">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis quam sint recusandae ullam culpa enim, atque et? Doloremque sapiente odio, reprehenderit consectetur, suscipit repudiandae quis illum saepe itaque quisquam, maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores ipsum dolorem quis omnis fuga, dolor expedita reprehenderit nemo maxime sequi voluptatum enim non, sint, repudiandae soluta cupiditate impedit odit rerum.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa eos explicabo soluta voluptatibus fugit expedita omnis optio tempore at iure odio aliquid, quibusdam, voluptas aspernatur harum libero sequi nam quidem.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam officiis iusto ipsa, adipisci porro ipsam. Repellendus itaque pariatur rem quia quisquam neque iure amet, deleniti, nesciunt veritatis, fugit ipsam magni.
</p>
</div>

<button class="next-button" [routerLink]="['/notes-details/Notes-3']"> GO TO NEXT NOTES </button>
</div>

+ 89
- 0
src/app/tabs/courses/notes-details/notes-details.component.scss 查看文件

@@ -0,0 +1,89 @@
.page {
background-color: var(--black);
height: 100vh;
padding-bottom: 60px;
overflow: auto;
}

.nav-header {
background-color: var(--ash-black);
display: flex;
align-items: center;
padding: 0 5%;
height: 60px;
position: sticky;
position: -webkit-sticky;
top: 0;
z-index: 1;

.close-button {
border: 0px;
background-color: transparent;
.icon {
width: 16px;
height: 16px;
fill: var(--light-grey);
}
}

h5 {
font-size: 16px;
color: white;
font-weight: 400;
margin-left: 20px;
letter-spacing: 1px;

.icon {
width: 15px;
height: 15px;
fill: white;
margin-right: 3px;
vertical-align: middle;
position: relative;
top: -1px;
}
}
}

h2 {
padding: 0 5%;
font-size: 22px;
margin: 20px auto 10px;
color: white;
font-weight: 400;
}

.description {
width: 90%;
margin: 0 auto;
color: white;

p {
margin-bottom: 20px;
font-size: 14px;
line-height: 2;
}
}

.next-button {
position: fixed;
left: 0px;
bottom: 0px;
background-color: var(--ash-black);
color: var(--light-grey);
font-size: 14px;
width: 100%;
height: 50px;
border: 0px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 0px 5px var(--black);

.icon {
width: 20px;
height: 20px;
fill: var(--light-grey);
margin-right: 5px;
}
}

+ 25
- 0
src/app/tabs/courses/notes-details/notes-details.component.spec.ts 查看文件

@@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { NotesDetailsComponent } from './notes-details.component';

describe('NotesDetailsComponent', () => {
let component: NotesDetailsComponent;
let fixture: ComponentFixture<NotesDetailsComponent>;

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ NotesDetailsComponent ]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(NotesDetailsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});

+ 34
- 0
src/app/tabs/courses/notes-details/notes-details.component.ts 查看文件

@@ -0,0 +1,34 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs';
import { Location } from '@angular/common';

@Component({
selector: 'app-notes-details',
templateUrl: './notes-details.component.html',
styleUrls: ['./notes-details.component.scss']
})
export class NotesDetailsComponent implements OnInit {
heading: string;
routeSubscription: Subscription;

constructor(
private route: ActivatedRoute,
private location: Location
) { }

ngOnInit(): void {
this.routeSubscription = this.route.params.subscribe((params) => {
this.heading = params['heading'];
});
}

ngOnDestroy() {
this.routeSubscription.unsubscribe();
}

back() {
this.location.back();
}

}

+ 4
- 4
src/app/tabs/courses/video-chapter/video-chapter.component.html 查看文件

@@ -60,7 +60,7 @@
</ul>

<ul class="notes-list" *ngIf="selectedSegment === 'notes'">
<li>
<li [routerLink]="['/notes-details', 'Notes-1']">
<div class="content">
<label> Notes 1 </label>
<p>
@@ -70,7 +70,7 @@
<svg-icon [applyClass]="true" class="icon arrow" src="assets/custom-icons/down-arrow.svg"></svg-icon>
</li>

<li>
<li [routerLink]="['/notes-details', 'Notes-2']">
<div class="content">
<label> Notes 2 </label>
<p>
@@ -80,9 +80,9 @@
<svg-icon [applyClass]="true" class="icon arrow" src="assets/custom-icons/down-arrow.svg"></svg-icon>
</li>

<li>
<li [routerLink]="['/notes-details', 'Notes-3']">
<div class="content">
<label> Notes 2 </label>
<label> Notes 3 </label>
<p>
quidem minima dolor delectus optio, dicta.
</p>