瀏覽代碼

Initialize entity investigation

master
Adwaith Rao 3 年之前
父節點
當前提交
fd2762e5b0
共有 27 個文件被更改,包括 694 次插入45 次删除
  1. +4
    -0
      src/app/app-routing.module.ts
  2. +9
    -1
      src/app/app.module.ts
  3. +10
    -3
      src/app/layout/notifications/notifications.component.html
  4. +14
    -10
      src/app/layout/notifications/notifications.component.ts
  5. +3
    -28
      src/app/pages/e-services/e-services.component.html
  6. +1
    -0
      src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.html
  7. +0
    -0
      src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.scss
  8. +25
    -0
      src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.spec.ts
  9. +15
    -0
      src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.ts
  10. +34
    -0
      src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.html
  11. +329
    -0
      src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.scss
  12. +25
    -0
      src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.spec.ts
  13. +42
    -0
      src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.ts
  14. +1
    -0
      src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.html
  15. +0
    -0
      src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.scss
  16. +25
    -0
      src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.spec.ts
  17. +15
    -0
      src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.ts
  18. +30
    -0
      src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.html
  19. +31
    -0
      src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.scss
  20. +25
    -0
      src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.spec.ts
  21. +53
    -0
      src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.ts
  22. +1
    -1
      src/app/pages/login/login.component.scss
  23. +1
    -1
      src/app/widgets/table/table.component.html
  24. +1
    -1
      src/app/widgets/table/table.component.ts
  25. 二進制
      src/assets/files/compressed-files.zip
  26. 二進制
      src/assets/files/document.docx
  27. 二進制
      src/assets/files/spreadsheet.xlsx

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

@@ -6,6 +6,7 @@ import { LoginComponent } from './pages/login/login.component';
import { MockComponent } from './widgets/mock/mock.component';
import { RegisterBusinessComponent } from './pages/register-business/register-business.component';
import { TabsComponent } from './layout/tabs/tabs.component';
import { InvestigateBusinessEntitiesAndIndividualsComponent } from './pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component';

const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'login' },
@@ -23,6 +24,9 @@ const routes: Routes = [
}, {
path: 'register-business',
component: RegisterBusinessComponent,
}, {
path: 'investigate-business-entities-and-individuals',
component: InvestigateBusinessEntitiesAndIndividualsComponent,
}]
},
];


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

@@ -18,6 +18,10 @@ import { FileComponent } from './widgets/file/file.component';
import { DateInputComponent } from './widgets/form/date-input/date-input.component';
import { SelectInputComponent } from './widgets/form/select-input/select-input.component';
import { GenericInputComponent } from './widgets/form/generic-input/generic-input.component';
import { InvestigateBusinessEntitiesAndIndividualsComponent } from './pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component';
import { ViewCaseDetailsComponent } from './pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component';
import { ModifyCaseDetailsComponent } from './pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component';
import { AssignPanelComponent } from './pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component';

@NgModule({
declarations: [
@@ -35,7 +39,11 @@ import { GenericInputComponent } from './widgets/form/generic-input/generic-inpu
FileComponent,
DateInputComponent,
SelectInputComponent,
GenericInputComponent
GenericInputComponent,
InvestigateBusinessEntitiesAndIndividualsComponent,
ViewCaseDetailsComponent,
ModifyCaseDetailsComponent,
AssignPanelComponent
],
imports: [
BrowserModule,


+ 10
- 3
src/app/layout/notifications/notifications.component.html 查看文件

@@ -1,7 +1,14 @@
<ul>
<li *ngFor="let notification of notifications">
<h5> {{ notification.text }} </h5>
<p *ngIf="notification.description"> {{ notification.description }} </p>
<span class="time-stamp"> {{ notification.timeStamp }} </span>
<a *ngIf="notification.redirectionUrl" [routerLink]="notification.redirectionUrl">
<h5> {{ notification.text }} </h5>
<p *ngIf="notification.description"> {{ notification.description }} </p>
<span class="time-stamp"> {{ notification.timeStamp }} </span>
</a>
<ng-container *ngIf="!notification.redirectionUrl">
<h5> {{ notification.text }} </h5>
<p *ngIf="notification.description"> {{ notification.description }} </p>
<span class="time-stamp"> {{ notification.timeStamp }} </span>
</ng-container>
</li>
</ul>

+ 14
- 10
src/app/layout/notifications/notifications.component.ts 查看文件

@@ -12,19 +12,23 @@ export class NotificationsComponent implements OnInit {
description?: string,
redirectionUrl?: string,
}> = [{
text: "New name application has been submitted",
description: "A new Applicant in the company name Kimao has applied for an appeal",
timeStamp: "1 hour ago",
text: 'New name application has been submitted',
description: 'A new Applicant in the company name Kimao has applied for an appeal',
timeStamp: '1 hour ago',
}, {
text: "Request to create a new Committee",
timeStamp: "2 hours ago",
text: 'Entity Corp. flagged for investigation',
timeStamp: '2 days ago',
redirectionUrl: '/tabs/investigate-business-entities-and-individuals',
}, {
text: "New name application has been submitted",
description: "A new Applicant in the company name Kimao has applied for an appeal",
timeStamp: "1 hour ago",
text: 'Request to create a new Committee',
timeStamp: '2 hours ago',
}, {
text: "Request to create a new Committee",
timeStamp: "2 hours ago",
text: 'New name application has been submitted',
description: 'A new Applicant in the company name Kimao has applied for an appeal',
timeStamp: '1 hour ago',
}, {
text: 'Request to create a new Committee',
timeStamp: '2 hours ago',
}];

constructor() { }


+ 3
- 28
src/app/pages/e-services/e-services.component.html 查看文件

@@ -34,38 +34,13 @@
<li>
<div class="cell"> 2 </div>
<div class="cell">
<h5> Application to register Person(s) Business </h5>
<h5> Investigating Business Entities and Individuals </h5>
<p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Animi sapiente beatae est nobis voluptatibus. Pariatur, unde enim libero dignissimos quos ipsa sed vitae ex illum rem, eius explicabo fugit nisi! </p>
</div>
<div class="cell"> 15 </div>
<div class="cell">
<button [routerLink]="['/tabs/register-business']"> Apply </button>
</div>
</li>

<li>
<div class="cell"> 2 </div>
<div class="cell">
<h5> Withdrawal of Name Application </h5>
<p> Lorem ipsum, dolor sit amet consectetur adipisicing elit. Animi sapiente beatae est nobis voluptatibus. Pariatur, unde enim libero dignissimos quos ipsa sed vitae ex illum rem, eius explicabo fugit nisi! </p>
</div>
<div class="cell"> 15 </div>
<div class="cell">
<button [routerLink]="['/tabs/register-business']"> Apply </button>
<button [routerLink]="['/tabs/investigate-business-entities-and-individuals']"> Apply </button>
</div>
</li>
</ul>
</section>

<div class="table-holder">
<app-table
[headings]="['A', 'B', 'C']"
[tableDetails]="[['Val 1', 'Val 2 ', 'Val 3'], ['V1', 'V2', 'V3'], ['A1', 'A2', 'A3']]"
></app-table>
</div>

<div class="key-value-holder">
<app-key-value-holder [keyValues]="keyValues"></app-key-value-holder>
</div>

<app-file [name]="'Downladable Table'" [sizeInBytes]="30000" [extension]="'xls'" [link]="'http://localhost:4200/assets/icons/bell.svg'"></app-file>
</section>

+ 1
- 0
src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.html 查看文件

@@ -0,0 +1 @@
<app-select-entities></app-select-entities>

+ 0
- 0
src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.scss 查看文件


+ 25
- 0
src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.spec.ts 查看文件

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

import { AssignPanelComponent } from './assign-panel.component';

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

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

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

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

+ 15
- 0
src/app/pages/investigate-business-entities-and-individuals/assign-panel/assign-panel.component.ts 查看文件

@@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';

@Component({
selector: 'app-assign-panel',
templateUrl: './assign-panel.component.html',
styleUrls: ['./assign-panel.component.scss']
})
export class AssignPanelComponent implements OnInit {

constructor() { }

ngOnInit(): void {
}

}

+ 34
- 0
src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.html 查看文件

@@ -0,0 +1,34 @@
<header class="tab-header">
<h2>
Investigating Business Entities and Individuals
</h2>
</header>

<section class="bread-crumbs">
<span [routerLink]="['/tabs/e-services']"> E-Services </span> /
<span class="current-page"> Investigating Business Entities and Individuals </span>
</section>


<app-view-case-details
*ngIf="state === 'VIEW INITIAL DETAILS'"
[hasEnoughData]="hasEnoughData"
(updateHasEnoughData)="hasEnoughData = $event"
></app-view-case-details>

<app-modify-case-details
*ngIf="state === 'ENTER MORE DETAILS'"
></app-modify-case-details>

<app-assign-panel
*ngIf="state === 'ASSIGN COMMITTEE'"
></app-assign-panel>
<div class="form-action-buttons">
<button class="common-button neutral" *ngIf="stateHistory.length > 0" (click)="goBack()">
Back
</button>
<button class="common-button" (click)="proceed()">
Proceed
</button>
</div>

+ 329
- 0
src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.scss 查看文件

@@ -0,0 +1,329 @@
.form-action-buttons {
text-align: center;
margin-bottom: 2rem;

button {
&:first-child {
margin-right: 2rem;
}
}
}

.form {
display: grid;
grid-template-columns: 1fr 1fr;
width: calc(70% - 2rem);
padding: 4rem;
margin: 0 auto;

.input-holder {
width: calc(100% - 2rem);
}
}

.acknowledgement {
width: 100%;
margin: 0 auto;
h2 {
font-size: 2rem;
color: var(--dark-grey);
filter: brightness(80%);
font-weight: 500;
margin: 2rem 2rem 3rem;
}

.container {
width: calc(70% - 2rem);
margin: 2rem auto;

@media print {
width: calc(100% - 2rem);
}
}

.bill-container {
width: 70%;
box-shadow: 0 0 10px var(--shadow-grey);
border-radius: 1rem;
overflow: hidden;
margin: 0 auto 5rem;

@media print {
width: 100%;
}
}

.check-icon {
display: block;
width: 58px;
height: auto;
margin: 3rem auto 2rem;
}

h3 {
font-size: 3rem;
font-weight: normal;
text-align: center;
color: var(--success);
}

.bill-breakup {
margin-top: 3rem;
display: grid;
grid-template-columns: 1fr 1fr;
list-style: none;

li {
margin: 1.8rem;
width: 100%;
}

label {
display: block;
color: var(--dark-grey);
font-size: 1.6rem;
filter: brightness(80%);
}

.value {
display: block;
color: var(--dark-grey);
opacity: 0.8;
font-size: 1.6rem;
letter-spacing: 0.5px;
line-height: 1.6;
margin-top: 1rem;

&.active {
color: var(--highlight);
font-weight: normal;
}
}
}

.form-action-buttons {
margin: 2rem 1.5rem;

@media print {
display: none;
}
}

.total-amount {
text-align: center;
overflow: hidden;
padding: 1rem;
position: relative;

&::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: var(--footer-grey);
opacity: 0.4;
}

& > * {
position: relative;
}

label {
font-size: 2rem;
color: var(--dark-grey);
}

span {
margin-left: 1rem;
font-size: 2.4rem;
color: var(--highlight);
}
}

.message-board {
padding: 0 2rem;
list-style: none;

@media print {
display: none;
}
h5 {
font-size: 1.6rem;
color: var(--dark-grey);
filter: brightness(80%);
font-weight: 500;
}

li {
margin: 1.5rem 0;
line-height: 1.7;
letter-spacing: 0.5px;
font-size: 1.4rem;
color: var(--dark-grey);
opacity: 0.8;

a {
color: var(--highlight);
font-weight: 500;
}
}
}
}

.receipt {
width: calc(100% - 4rem);
margin: 0 auto;
h2 {
font-size: 2rem;
color: var(--dark-grey);
filter: brightness(80%);
font-weight: 500;
margin: 2rem 0;
}

.bill-breakup {
display: grid;
grid-template-columns: 1fr 1fr;
list-style: none;

li {
margin-bottom: 1rem;
width: 100%;
display: flex;
align-items: center;
justify-content: flex-start;
}

label {
display: block;
color: var(--dark-grey);
font-size: 1.4rem;
}

.value {
display: block;
color: var(--dark-grey);
opacity: 0.8;
font-size: 1.6rem;
letter-spacing: 0.5px;
line-height: 1.6;
margin-left: 1rem;
}
}

.table {
margin: 2rem auto;
width: 100%;
border-radius: 1rem;
overflow: auto;
border: 2px solid var(--border-grey);
min-height: 10rem;
header {
background: linear-gradient(90deg, var(--secondary) 0%, var(--primary));
color: white;
font-size: 1.6rem;
display: flex;
align-items: center;
justify-content: flex-start;
height: 5.5rem;
font-weight: 300;
letter-spacing: 0.5px;
}
.cell {
width: calc(100% / 6);

@media print {
word-break: break-all;
}

&:nth-child(1) {
text-align: center;
width: 10rem;
}

&:nth-child(2) {
width: calc(20% + (10% - 10rem));
}

&:nth-child(3) {
width: 20%;
}

&:nth-child(4) {
width: 20%;
}

&:nth-child(5) {
width: 10%;
}

&:nth-child(3) {
width: 20%;
}
}
ul {
list-style: none;
}
li {
display: flex;
align-items: flex-start;
justify-content: flex-start;
padding: 2rem 0;
&:nth-child(even) {
background-color: var(--border-grey);
}
.cell {
font-size: 1.4rem;
color: var(--dark-grey);
line-height: 1.7;
}
}
}

.message-board {
width: 100%;
margin: 4rem 0;
list-style: none;
h5 {
font-size: 1.6rem;
color: var(--dark-grey);
filter: brightness(80%);
font-weight: 500;
margin-bottom: 1rem;
}

li {
margin: 0.5rem 0;
line-height: 1.7;
letter-spacing: 0.5px;
font-size: 1.4rem;
color: var(--dark-grey);
opacity: 0.8;

a {
color: var(--highlight);
font-weight: 500;
}
}
}

.form-action-buttons {
text-align: left;

@media print {
display: none;
}
}
}

+ 25
- 0
src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.spec.ts 查看文件

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

import { InvestigateBusinessEntitiesAndIndividualsComponent } from './investigate-business-entities-and-individuals.component';

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

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

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

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

+ 42
- 0
src/app/pages/investigate-business-entities-and-individuals/investigate-business-entities-and-individuals.component.ts 查看文件

@@ -0,0 +1,42 @@
import { Component, OnInit } from '@angular/core';

type State = 'VIEW INITIAL DETAILS'|'ENTER MORE DETAILS'|'ASSIGN COMMITTEE';

@Component({
selector: 'app-investigate-business-entities-and-individuals',
templateUrl: './investigate-business-entities-and-individuals.component.html',
styleUrls: ['./investigate-business-entities-and-individuals.component.scss']
})
export class InvestigateBusinessEntitiesAndIndividualsComponent implements OnInit {
hasEnoughData = false;

state: State = 'VIEW INITIAL DETAILS';
stateHistory: Array<State> = [];

constructor() { }

proceed() {
this.stateHistory.push(this.state);
switch (this.state) {
case 'VIEW INITIAL DETAILS':
if (this.hasEnoughData) {
this.state = 'ASSIGN COMMITTEE';
} else {
this.state = 'ENTER MORE DETAILS';
}
}
}

goBack() {
const state = this.stateHistory.pop();

if (state) {
this.state = state;
}
}

ngOnInit(): void {
}

}

+ 1
- 0
src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.html 查看文件

@@ -0,0 +1 @@
<p>modify-case-details works!</p>

+ 0
- 0
src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.scss 查看文件


+ 25
- 0
src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.spec.ts 查看文件

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

import { ModifyCaseDetailsComponent } from './modify-case-details.component';

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

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

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

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

+ 15
- 0
src/app/pages/investigate-business-entities-and-individuals/modify-case-details/modify-case-details.component.ts 查看文件

@@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';

@Component({
selector: 'app-modify-case-details',
templateUrl: './modify-case-details.component.html',
styleUrls: ['./modify-case-details.component.scss']
})
export class ModifyCaseDetailsComponent implements OnInit {

constructor() { }

ngOnInit(): void {
}

}

+ 30
- 0
src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.html 查看文件

@@ -0,0 +1,30 @@
<div class="screen-holder">
<h3>Case details</h3>
<app-key-value-holder [keyValues]="companyDetails"></app-key-value-holder>

<h3>Board of directors</h3>
<app-table [headings]="boardDirectorHeadings" [data]="boardDirectorData"></app-table>

<h3>Documents</h3>
<div class="files-holder">
<app-file
name="Account statement"
[sizeInBytes]="300000"
extension="xls"
link="/assets/files/spreadsheet.xlsx"
></app-file>
<app-file
name="Formal complaint"
[sizeInBytes]="240000"
extension="docx"
link="/assets/files/document.docx"
></app-file>
</div>

<div class="prompt-data-outreach">
<label>
<input type="checkbox" [(ngModel)]="hasEnoughData" (ngModelChange)="toggleHasData($event)">
<span>Is this data enough to proceed with investigation?</span>
</label>
</div>
</div>

+ 31
- 0
src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.scss 查看文件

@@ -0,0 +1,31 @@
.screen-holder {
width: calc(70% - 2rem);
padding: 4rem;
margin: 0 auto;
}

h3 {
font-size: 2rem;
color: var(--dark-grey);
filter: brightness(80%);
font-weight: 500;
margin: 2rem 0;
}

.files-holder {
& > * {
margin-right: 15px;
}
}

.prompt-data-outreach {
font-size: 1.4rem;
color: var(--dark-grey);
padding: 2rem;
text-align: center;
margin-top: 20px;

input {
margin-right: 10px;
}
}

+ 25
- 0
src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.spec.ts 查看文件

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

import { ViewCaseDetailsComponent } from './view-case-details.component';

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

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

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

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

+ 53
- 0
src/app/pages/investigate-business-entities-and-individuals/view-case-details/view-case-details.component.ts 查看文件

@@ -0,0 +1,53 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { KeyValue } from 'src/app/widgets/key-value-holder/key-value-holder.component';

@Component({
selector: 'app-view-case-details',
templateUrl: './view-case-details.component.html',
styleUrls: ['./view-case-details.component.scss']
})
export class ViewCaseDetailsComponent implements OnInit {
@Output() updateHasEnoughData = new EventEmitter<boolean>();

@Input() hasEnoughData: boolean = false;

companyDetails: Array<KeyValue> = [{
key: 'Business Name',
value: 'Entity Corp.',
}, {
key: 'Company ID',
value: 'ARN2021110294038',
}, {
key: 'Source of complaint',
value: 'Automatic',
}, {
key: 'Reason for complaint',
value: 'Unusual financial activity',
}];

boardDirectorHeadings: Array<string> = [
'Name',
'Member since',
]

boardDirectorData: Array<Array<string>> = [
[
'Rose E. Arthur',
'July 26, 2010',
], [
'David A. Bryant',
'July 26, 2008',
]
]

constructor() { }

toggleHasData(toggle: boolean) {
this.hasEnoughData = toggle;
this.updateHasEnoughData.emit(toggle);
}

ngOnInit(): void {
}

}

+ 1
- 1
src/app/pages/login/login.component.scss 查看文件

@@ -4,7 +4,7 @@
display: flex;
align-items: center;
justify-content: space-between;
background-image: url('../../assets/images/wall.jpeg');
background-image: url('../../../assets/images/wall.jpeg');
background-size: cover;
background-position: center;
height: 100vh;


+ 1
- 1
src/app/widgets/table/table.component.html 查看文件

@@ -5,7 +5,7 @@
</header>

<ol>
<li *ngFor="let tableDetail of tableDetails; let i = index" [ngStyle]="{'grid-template-columns': '100px repeat(' + headings.length + ', 1fr)'}">
<li *ngFor="let tableDetail of data; let i = index" [ngStyle]="{'grid-template-columns': '100px repeat(' + headings.length + ', 1fr)'}">
<div class="cell"> {{ i + 1 }} </div>
<div class="cell" *ngFor="let detail of tableDetail">
<p> {{ detail }} </p>


+ 1
- 1
src/app/widgets/table/table.component.ts 查看文件

@@ -7,7 +7,7 @@ import { Component, Input, OnInit } from '@angular/core';
})
export class TableComponent implements OnInit {
@Input() headings: Array<string> = [];
@Input() tableDetails: Array<Array<string>> = [];
@Input() data: Array<Array<string>> = [];


constructor() { }


二進制
src/assets/files/compressed-files.zip 查看文件


二進制
src/assets/files/document.docx 查看文件


二進制
src/assets/files/spreadsheet.xlsx 查看文件


Loading…
取消
儲存