vniigaz mullti

master
Boris Voropaev 2023-11-02 09:40:11 +03:00
parent 71088e7f84
commit 513b2c0c82
16 changed files with 336 additions and 28 deletions

View File

@ -1,10 +1,29 @@
import {Component} from '@angular/core';
import {AuthenticationService} from "@app/_services";
import {Subscription} from "rxjs";
import { html } from '@environments/htmlenv';
@Component({
selector: 'footer',
templateUrl: 'footer.component.html',
templateUrl: html.footer||'footer.component.html',
styleUrls: ['footer.component.scss']
})
export class FooterComponent {
subscription: Subscription;
public user: any;
constructor(public authenticationService: AuthenticationService) {
this.subscription = this.authenticationService.user.subscribe(user => {
this.user = user;
});
}
ngOnInit() {
}
login() {
this.authenticationService.popup('login');
}
}

View File

@ -3,10 +3,11 @@ import {PagesService} from "@app/_services/pages.service";
import {AuthenticationService, ListsService} from "@app/_services";
import {Subscription} from "rxjs";
import { Router } from '@angular/router';
import { html } from '@environments/htmlenv';
@Component({
selector: 'header',
templateUrl: 'header.component.html',
templateUrl: html.header||'header.component.html',
styleUrls: ['header.component.scss']
})
export class HeaderComponent {
@ -29,6 +30,7 @@ export class HeaderComponent {
}
ngOnInit() {
console.log(html.header)
let showSettingSite = localStorage.getItem('showSettingSite');
if (showSettingSite === null || showSettingSite === 'no') {
localStorage.setItem('showSettingSite', 'no');

View File

@ -1,10 +1,95 @@
import { Component } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { Subscription } from "rxjs";
import { PagesService } from '@app/_services/pages.service';
import { FormsService } from '@app/_services';
import { html } from '@environments/htmlenv';
@Component({
selector: 'left-content',
templateUrl: './left-content.component.html',
templateUrl: html.leftContent||'./left-content.component.html',
styleUrls: ['./left-content.component.scss']
})
export class LeftContentComponent {
public url: string = "";
public background:string;
public pageName:string;
public editable:string;
public editMode: boolean = false;
private pageID: string;
private routeSubscription: Subscription;
constructor(
private router: Router,
private pagesService:PagesService,
private formsService: FormsService) {
}
ngOnInit(){
this.routeSubscription = this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) this.onNavigationEnd(event);
});
this.pagesService.editMode.subscribe(
mode => {
this.editMode = mode;
}
)
}
onNavigationEnd(event: NavigationEnd) {
let url = event.url.split('(')[0];
url = url.split('?')[0];
if (url !== this.url) {
this.url = url;
this.fetch()
}
}
fetch(){
let include = [
'permissions',
'parents'
];
this.pagesService.find(this.url, {include: include.join(',')}).subscribe(
resp => {
let page = resp?.data;
if (page){
console.log(page.parents.data);
this.background = page.image?.data?.links?.full;
if (this.background) this.background = `url(${this.background})`;
this.pageName = (page.parents.data[2]||page).name;
this.editable = page.permissions.edit || page.permissions.anything;
this.pageID = page.id
}else{
this.pageName = null;
this.editable = null;
this.pagesService.editMode.next(false)
}
}
)
}
toggleEditMode(){
this.pagesService.editMode.next(!this.editMode)
}
editBackground() {
this.formsService.createModel('page-background', {extraProps: {attach: {pageId: this.pageID}}});
}
removeBackground() {
if (confirm('Вы деествительно хотите удалить этот фон?')) {
this.pagesService.deleteBackground(this.pageID).subscribe(res => {
});
}
}
}

View File

@ -12,6 +12,7 @@ export class PagesService {
}
public pagesTree: BehaviorSubject<any>
public editMode = new BehaviorSubject<boolean>(false);
changedPages(){
let include = ['children.children.children.children.children.children.children'];

View File

@ -1,3 +1,6 @@
export const html = {
project:'root'
project:'root',
header:'',
leftContent:'',
footer:'',
}

View File

@ -1,3 +1,6 @@
export const html = {
project:'vniigaz'
project:'vniigaz',
header:'../../../../../projects/vniigaz/src/assets/html/header.component.html',
leftContent:'../../../../../projects/vniigaz/src/assets/html/left-content.component.html',
footer:'../../../../../projects/vniigaz/src/assets/html/footer.component.html',
}

View File

@ -1,5 +1,5 @@
.documents.list.default {
background: transparent url('~src/assets/images/icons/document/document_pdf_60dp.svg') 0 0 no-repeat;
background: transparent url('~projects/vniigaz/src/assets/images/icons/document/document_pdf_60dp.svg') 0 0 no-repeat;
min-height: 60px;
padding-left: 72px;
font-size: 20px;
@ -40,7 +40,7 @@
margin: 0 12px 4px 0;
border: solid 1px rgba(0, 0, 0, 0.06);
border-radius: 12px;
//background: #e3eff9 url('~src/assets/images/icons/open_in_new_18dp.svg') calc(100% - 8px) 50% no-repeat;
//background: #e3eff9 url('~projects/vniigaz/src/assets/images/icons/open_in_new_18dp.svg') calc(100% - 8px) 50% no-repeat;
font-size: 0.875rem;
a {
color: #000000;

View File

@ -0,0 +1,63 @@
.footer {
width: 100%;
padding: 40px 100px;
background-color: var(--prime-act);
color: white;
display: flex;
flex-direction: column;
.block{
a{
cursor: pointer;
color: white;
:hover{
color: white;
}
}
display: flex;
flex-wrap: wrap;
grid-gap: 20px;
&>div{
padding-bottom: 40px;
}
div{
display: block;
flex-grow: 1;
flex-basis: 196px;
flex-shrink: 0;
margin-bottom: -16px;
div {
margin-bottom: 16px;
}
}
.icons a{
margin-right: 16px;
}
.menu{
display: block;
}
}
.line{
width: 100%;
height: 1px;
background-color: var(--prime);
margin-bottom: 40px;
}
.copyright{
display: flex;
justify-content: space-between;
font-size: 16px;
font-style: normal;
font-weight: 400;
}
}
@media screen and (max-width: 1330px){
.footer{
padding: 40px 24px;
}
}

View File

@ -52,15 +52,15 @@
.green, .active {color: #669933;}
.red, .declined {color: #e60046;}
.edit {
//background-image: url("~src/assets/images/icons/edit_24dp.svg");
//background-image: url("~projects/vniigaz/src/assets/images/icons/edit_24dp.svg");
}
.delete {
//background-image: url("~src/assets/images/icons/delete_24dp.svg");
//background-image: url("~projects/vniigaz/src/assets/images/icons/delete_24dp.svg");
}
.toggle {
margin-top: auto;
margin-left: auto;
//background-image: url("~src/assets/images/icons/arrow_down_24dp.svg");
//background-image: url("~projects/vniigaz/src/assets/images/icons/arrow_down_24dp.svg");
transition: transform 0.2s;
&.active {
transform: rotateZ(180deg);

View File

@ -34,7 +34,7 @@
padding: 8px 52px 8px 16px;
border: #BFBFBF solid 1px;
border-radius: 12px;
background: #ffffff url('~src/assets/images/icons/search_24dp.svg') calc(100% - 12px) 50% no-repeat;
background: #ffffff url('~projects/vniigaz/src/assets/images/icons/search_24dp.svg') calc(100% - 12px) 50% no-repeat;
}
}
.advanced {
@ -55,11 +55,11 @@
&:before {
width: 24px;
height: 24px;
background: transparent url('~src/assets/images/icons/filter_empty_24.svg') 50% 50% no-repeat;
background: transparent url('~projects/vniigaz/src/assets/images/icons/filter_empty_24.svg') 50% 50% no-repeat;
content: '';
}
&.filled:before {
background-image: url('~src/assets/images/icons/filter_filled_24.svg');
background-image: url('~projects/vniigaz/src/assets/images/icons/filter_filled_24.svg');
}
}
}

View File

@ -62,7 +62,7 @@
top: 0;
width: 13px;
height: 100%;
background: transparent url('~src/assets/images/icons/step_upcoming.svg') 100% 50% no-repeat;
background: transparent url('~projects/vniigaz/src/assets/images/icons/step_upcoming.svg') 100% 50% no-repeat;
content: '';
}
}
@ -75,7 +75,7 @@
background-color: #B88E12;
color: #ffffff;
&:after {
background-image: url('~src/assets/images/icons/step_active.svg');
background-image: url('~projects/vniigaz/src/assets/images/icons/step_active.svg');
}
}
.name {
@ -88,7 +88,7 @@
background-color: rgba(184, 142, 18, 0.2);
color: #B88E12;
&:after {
background-image: url('~src/assets/images/icons/step_finished.svg');
background-image: url('~projects/vniigaz/src/assets/images/icons/step_finished.svg');
}
}
.name {
@ -277,7 +277,7 @@
// top: 0;
// width: 13px;
// height: 100%;
// background: transparent url('~src/assets/images/icons/step_upcoming.svg') 100% 50% no-repeat;
// background: transparent url('~projects/vniigaz/src/assets/images/icons/step_upcoming.svg') 100% 50% no-repeat;
// content: '';
// }
// }
@ -290,7 +290,7 @@
// background-color: #B88E12;
// color: #ffffff;
// &:after {
// background-image: url('~src/assets/images/icons/step_active.svg');
// background-image: url('~projects/vniigaz/src/assets/images/icons/step_active.svg');
// }
// }
// .name {
@ -303,7 +303,7 @@
// background-color: rgba(184, 142, 18, 0.2);
// color: #B88E12;
// &:after {
// background-image: url('~src/assets/images/icons/step_finished.svg');
// background-image: url('~projects/vniigaz/src/assets/images/icons/step_finished.svg');
// }
// }
// .name {

View File

@ -0,0 +1,63 @@
<div class="footer">
<div class="block">
<div class="logo">
<img src="assets/images/logo_vniigaz_wt_280x110.svg" alt="">
</div>
<div class="contact">
<div>
<a href="#">+7 (498) 657-45-18</a>
</div>
<div>
<a href="#">info@vniigaz-cert.ru</a>
</div>
<div class="icons">
<a href="#">
<img src="assets/images/icons/vk_white_29x28.svg" alt="">
</a>
<a href="#">
<img src="assets/images/icons/ok_orange_28x28.svg" alt="">
</a>
<a href="#">
<img src="assets/images/icons/zen_black_28x28.svg" alt="">
</a>
</div>
</div>
<div class="menu">
<div>
<a href="/glavnaia/o-kompanii">О компании</a>
</div>
<div>
<a href="/glavnaia/sertifikatsiia/dobrovolnaia-sertifikatsiia-v-sds-intergazsert">Добровольная сертификация</a>
</div>
<div>
<a href="/glavnaia/sertifikatsiia/obiazatelnaia-sertifikatsiia">Обязательная сертификация</a>
</div>
<div>
<a href="/glavnaia/sertifikatsiia/ispytaniia">Испытания</a>
</div>
</div>
<div class="menu">
<div>
<a href="/glavnaia/validatsiia-i-verifikatsiia">Валидация и верификация</a>
</div>
<div>
<a href="/glavnaia/standartizatsiia">Стандартизация</a>
</div>
<div>
<a href="/glavnaia/novosti">Новости</a>
</div>
<div *ngIf="!user">
<a (click)="login()">Вход в личный кабинет</a>
</div>
</div>
</div>
<div class="line"></div>
<div class="copyright">
<div>
© 19982023 ЧУ СЦ ВНИИГАЗ-Сертификат
</div>
<div class="op-63">
Разработка сайта — ООО НИР
</div>
</div>
</div>

View File

@ -0,0 +1,48 @@
<div class="header">
<a class="burger" (click)="openMobileMenu()">
<ico ico="burger_blue_40dp" [size]="36"></ico>
</a>
<a [routerLink]="'glavnaia'" class="logo" >
<img src="assets/images/logo_vniigaz_1163x816.svg">
</a>
<pages-menu class="top-menu"></pages-menu>
<a class="btn vnii" href="https://ais.vniigaz-cert.ru/" target="_blank">АИС СЦ ВНИИГАЗ</a>
</div>
<!-- <div class="header">
<div class="bottom">
<a href="/glavnaia/" class="logo hidemobile"></a>
<div class="grid-menu" >
<button class="close" (click)="showBottom=false"></button>
<pages-menu [items]="menuItems" (onSelected)="itemSelect($event)"></pages-menu>
<a class="ais">АИС СЦ ВНИИГАЗ</a>
</div>
<div class="right" style="position: relative;">
<a href="/glavnaia/" class="logo showmobile"></a>
<a class="btn hidemobile" href="https://ais.vniigaz-cert.ru/" target="_blank">АИС СЦ ВНИИГАЗ</a>
<header-user-bar *ngIf="user" [user]="user"></header-user-bar>
</div>
</div>
</div>
<div class="header showmobile" *ngIf="showBottom">
<retainer></retainer>
<div class="bottom">
<div class="grid-menu">
<div class="left-block">
<button class="close" (click)="showBottom=false"></button>
<pages-menu [items]="menuItems" (onSelected)="itemSelect($event)"></pages-menu>
<a class="ais" href="https://ais.vniigaz-cert.ru/" target="_blank">АИС СЦ ВНИИГАЗ</a>
</div>
</div>
<div class="fog" (click)="showBottom=false" [ngClass]="{hidemobile:!showBottom,showmobile:showBottom}"></div>
</div>
</div> -->

View File

@ -0,0 +1,20 @@
<div class="background" [ngStyle]="{'background-image':background}" *ngIf="pageName">
<div class="left-content">
<header-user-bar></header-user-bar>
<h1 class="h1-jumbotron">
{{pageName}}
</h1>
<div class="menu" *ngIf="editMode">
<div class="block">
<a (click)="editBackground()"><ico ico="edit_24"></ico></a>
<a (click)="removeBackground()"><ico ico="delete_24"></ico></a>
</div>
</div>
</div>
</div>
<div class="edit-field" *ngIf="editable">
<div class="edit-field-row switch-host" (click)="toggleEditMode()">
Режим редактирования
<switch [val]="editMode"></switch>
</div>
</div>

View File

@ -5,7 +5,7 @@
}
// li {
// list-style-image: url("~src/assets/images/icons/add_24dp.svg");
// list-style-image: url("~projects/vniigaz/src/assets/images/icons/add_24dp.svg");
// }
// .btn {
@ -37,12 +37,12 @@
width: 24px;
height: 24px;
}
&.up {background-image: url("~src/assets/images/icons/arrow_upward_24dp.svg");}
&.down {background-image: url("~src/assets/images/icons/arrow_downward_24dp.svg");}
&.edit {background-image: url("~src/assets/images/icons/edit_24dp.svg");}
&.publish {background-image: url("~src/assets/images/icons/visibility_on_24dp.svg");}
&.unpublish {background-image: url("~src/assets/images/icons/visibility_off_24dp.svg");}
&.delete {background-image: url("~src/assets/images/icons/trash_24dp.svg");}
&.up {background-image: url("~projects/vniigaz/src/assets/images/icons/arrow_upward_24dp.svg");}
&.down {background-image: url("~projects/vniigaz/src/assets/images/icons/arrow_downward_24dp.svg");}
&.edit {background-image: url("~projects/vniigaz/src/assets/images/icons/edit_24dp.svg");}
&.publish {background-image: url("~projects/vniigaz/src/assets/images/icons/visibility_on_24dp.svg");}
&.unpublish {background-image: url("~projects/vniigaz/src/assets/images/icons/visibility_off_24dp.svg");}
&.delete {background-image: url("~projects/vniigaz/src/assets/images/icons/trash_24dp.svg");}
}
}
}

View File

@ -17,7 +17,8 @@
],
"paths": {
"@app/*": ["projects/app/*"],
"@environments/*": ["projects/environments/*"]
"@environments/*": ["projects/environments/*"],
"@vniigaz*": ["projects/vniigaz*"]
}
}
}