master
drfelfel 2020-10-09 14:33:42 +03:30
parent e10e2c23d3
commit 3b02136122
10 changed files with 114 additions and 34 deletions

6
package-lock.json generated
View File

@ -10098,9 +10098,9 @@
}
},
"rayconnect-client": {
"version": "0.10.29",
"resolved": "https://registry.npmjs.org/rayconnect-client/-/rayconnect-client-0.10.29.tgz",
"integrity": "sha512-uiGicMUS6OjhP1usXvi9VjxyOw/55+XR/oiL2NZRBYPvTgIDcn4T9QzDwgeVnv3SF280Zr0BKxWs8rq6ZDK5qQ==",
"version": "0.11.1-nightly",
"resolved": "https://registry.npmjs.org/rayconnect-client/-/rayconnect-client-0.11.1-nightly.tgz",
"integrity": "sha512-M89sH8KPLJQLyL+mVGJi42K23SQqoEih2gLNTqGUOO3dL+bLSoAWhXAinQRD1j5du01A2DnT8ZW5u+m7Stwnow==",
"requires": {
"@types/events": "^3.0.0",
"@types/node": "^13.13.15",

View File

@ -26,7 +26,7 @@
"@ctrl/ngx-chartjs": "^4.0.2",
"chart.js": "^2.9.3",
"jalali-moment": "^3.3.8",
"rayconnect-client": "^0.10.29",
"rayconnect-client": "^0.11.1-nightly",
"rxjs": "~6.5.5",
"tslib": "^2.0.0",
"xlsx": "^0.16.6",

View File

@ -30,6 +30,11 @@ export const items: Item[] = [
icon: 'admin_panel_settings',
path: '/panel/mods'
},
{
title: 'مراکز دانشگاهی',
icon: 'domain',
path: '/panel/universities'
},
{
title: 'رشته های تحصیلی',
icon: 'school',

View File

@ -1,29 +1,41 @@
<div class="selector">
<mat-form-field appearance="outline">
<mat-label>انتخاب مرکز / دانشگاه</mat-label>
<mat-select [formControl]="universityControl">
<mat-option value="all">تمامی مراکز</mat-option>
<mat-optgroup *ngFor="let group of univeristygroups" [label]="group.name"
[disabled]="group.disabled">
<mat-option [value]="group.value">تمامی مراکز {{group.name}}</mat-option>
<mat-option *ngFor="let university of group.universities" [value]="university.value">
{{university.viewValue}}
</mat-option>
</mat-optgroup>
</mat-select>
</mat-form-field>
</div>
<section>
<ng-container *ngFor="let item of data" >
<ng-container *ngFor="let item of data">
<div class="stats">
<mat-card>
<mat-card-header>
<mat-card-title>
<ng-container *ngFor="let dataset of item.datasets">
# {{dataset.label}}
# {{ dataset.label }}
</ng-container>
</mat-card-title>
</mat-card-header>
<mat-card-content>
<ngx-chartjs [data]="item" [type]="item.type" [options]="options" width="500" height="250"></ngx-chartjs>
<ngx-chartjs
[data]="item"
[type]="item.type"
[options]="options"
width="500"
height="250"
></ngx-chartjs>
</mat-card-content>
</mat-card>
</div>
</ng-container>
</ng-container>
</section>

View File

@ -1,11 +1,13 @@
section {
position: relative;
top: 10px;
right: 2px;
display: flex;
flex-wrap: wrap;
align-items: center;
overflow-x: hidden;
mat-card{
@ -13,4 +15,12 @@ section {
}
}
.selector {
padding: 10px;
padding-bottom: 0;;
}

View File

@ -6,6 +6,20 @@ import { Rayconnect } from '../../../../services/rayconnect/rayconnect.service';
import * as moment from 'jalali-moment';
import { Chart } from 'chart.js'
import { FormControl } from '@angular/forms';
interface University {
value: string;
viewValue: string;
}
interface UniversityGroup {
disabled?: boolean;
name: string;
value: string;
universities: University[];
}
@Component({
selector: 'app-app',
templateUrl: './app.component.html',
@ -13,6 +27,28 @@ import { Chart } from 'chart.js'
})
export class AppComponent implements OnInit {
universityControl = new FormControl();
univeristygroups: UniversityGroup[] = [
{
name: 'تهران',
value: "tehran",
universities: [
{ value: 'ps1', viewValue: 'مرکز پسران ۱' },
{ value: 'ps2', viewValue: 'مرکز پسران ۲' },
]
},
{
name: 'مرکزی',
value: "markazi",
universities: [
{ value: 'athar', viewValue: 'اطهر' },
{ value: 'amirkabir', viewValue: 'امیر کبیر' },
{ value: 'khomein', viewValue: 'دکتر حسابی خمین' },
{ value: 'saveh', viewValue: 'مرکز پسران ساوه' }
]
}
];
public list: { _id: string, name: string }[] = [];
options = {
responsive: true,
@ -51,6 +87,8 @@ export class AppComponent implements OnInit {
Chart.defaults.global.defaultFontFamily = "Font"
this.universityControl.setValue("all")
}
RandomColor(len) {

View File

@ -64,7 +64,7 @@ export class TableComponent implements OnInit {
uniqueID: "profile",
TokenID: "*",
scope: 'profile',
address: 'profile/user/manage/list/get',
address: 'profile/mods/manage/list/get',
info: {
method: 'get',
data: query

View File

@ -3,15 +3,13 @@
<span class="title">گزارش گیری</span>
</mat-toolbar-row>
</mat-toolbar>
<br>
<br />
<section>
<ng-container>
<mat-card>
<mat-horizontal-stepper labelPosition="bottom" #stepper>
<mat-step >
<form >
<mat-step>
<form>
<ng-template matStepLabel>نوع گزارش را انتخاب کنید</ng-template>
<mat-form-field appearance="outline">
@ -27,13 +25,12 @@
</div>
</form>
</mat-step>
<mat-step >
<form >
<mat-step>
<form>
<ng-template matStepLabel>ویژگی ها</ng-template>
<mat-form-field>
<mat-label>تاریخ</mat-label>
<input matInput placeholder=""
required>
<input matInput placeholder="" required />
</mat-form-field>
<div>
<button mat-button matStepperNext>بعدی</button>
@ -42,14 +39,21 @@
</mat-step>
<mat-step>
<ng-template matStepLabel>دریافت گزارش</ng-template>
<p>گزارش اماده شد</p>
<div>
<button mat-button (click)="stepper.reset()">باز نشانی</button>
<h3>دریافت گزارش</h3>
<p>
گزارش با موفقیت اماده سازی شد
با کلیک بر روی یکی از دکمه های زیر گزارش مورد نظر خود را دریافت کنید
</p>
<br />
<div style="padding-top: 30px">
<button mat-button color="red">خروجی چاپی</button>
<button mat-button color="blue">خروجی ورد</button>
<button mat-button color="green">خروجی اکسل</button>
</div>
</mat-step>
</mat-horizontal-stepper>
</mat-card>
</ng-container>
</section>

View File

@ -12,6 +12,15 @@ section {
mat-horizontal-stepper {
width: 100%;
}
iframe {
width: 100%;
min-height: 500px;
}
button{
margin: 1px;
}
mat-card {
display: flex;
flex-wrap: nowrap;

View File

@ -27,8 +27,10 @@ export class TableComponent implements OnInit {
this.getUsers(this.search)
this.getUsers(this.search)