From 63fac5b48d323a7c104ec89e6e80d41c678a9823 Mon Sep 17 00:00:00 2001 From: gofnnp Date: Mon, 5 Dec 2022 08:30:16 +0400 Subject: [PATCH] =?UTF-8?q?dev=20#12926=20=D0=94=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B8=20=D0=BF=D0=BE=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D1=83=20=D1=82=D0=BE=D0=B2=D0=B0=D1=80=D0=BE=D0=B2?= =?UTF-8?q?,=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=B4=D0=B8=D0=B7=D0=B0=D0=B9=D0=BD=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- angular/angular.json | 1 + angular/package-lock.json | 112 +++++++++++++++++- angular/package.json | 11 +- angular/src/app/app.constants.ts | 10 ++ angular/src/app/app.module.ts | 22 +++- .../components/navbar/navbar.component.html | 2 +- .../components/navbar/navbar.component.scss | 2 +- angular/src/app/interface/data.ts | 16 ++- .../app/pages/account/account.component.html | 34 +++++- .../app/pages/account/account.component.scss | 71 ++++++++--- .../app/pages/account/account.component.ts | 41 ++----- .../pages/products/products.component.html | 16 ++- .../pages/products/products.component.scss | 29 ++++- .../app/pages/products/products.component.ts | 18 ++- angular/src/app/services/wp-json.service.ts | 4 + angular/src/environments/environment.ts | 4 +- angular/src/index.html | 5 +- ..._1eb3fb56-3c4c-43b7-9a04-ce532ab7548f.json | 111 ----------------- angular/src/styles.scss | 19 ++- 19 files changed, 342 insertions(+), 186 deletions(-) delete mode 100644 angular/src/static/nomen_1eb3fb56-3c4c-43b7-9a04-ce532ab7548f.json diff --git a/angular/angular.json b/angular/angular.json index df5e2f1..c25c6e3 100644 --- a/angular/angular.json +++ b/angular/angular.json @@ -34,6 +34,7 @@ "src/firebase-messaging-sw.js" ], "styles": [ + "node_modules/mdb-angular-ui-kit/assets/scss/mdb.scss", "node_modules/primeng/resources/themes/saga-blue/theme.css", "node_modules/primeicons/primeicons.css", "node_modules/primeng/resources/primeng.min.css", diff --git a/angular/package-lock.json b/angular/package-lock.json index 4c160da..3f7344b 100644 --- a/angular/package-lock.json +++ b/angular/package-lock.json @@ -1,12 +1,12 @@ { "name": "sakura", - "version": "0.0.2", + "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "sakura", - "version": "0.0.2", + "version": "0.0.1", "dependencies": { "@angular/animations": "^14.0.0", "@angular/cdk": "^14.2.1", @@ -15,14 +15,18 @@ "@angular/core": "^14.0.0", "@angular/fire": "^7.4.1", "@angular/forms": "^14.0.0", + "@angular/material": "^14.2.1", "@angular/platform-browser": "^14.0.0", "@angular/platform-browser-dynamic": "^14.0.0", "@angular/router": "^14.0.0", "@angular/service-worker": "^14.0.0", "@fortawesome/angular-fontawesome": "^0.11.1", + "@fortawesome/fontawesome-free": "^6.0.0", "@fortawesome/fontawesome-svg-core": "^6.2.0", "@fortawesome/free-brands-svg-icons": "^6.2.0", "@fortawesome/free-solid-svg-icons": "^6.2.0", + "@ngrx/effects": "^14.3.2", + "@ngrx/store": "^14.3.2", "@types/uuid": "^8.3.4", "angular-moment-timezone": "^1.7.1", "angularx-qrcode": "^14.0.0", @@ -30,6 +34,7 @@ "firebase": "^9.9.3", "google-libphonenumber": "^3.2.30", "jsbarcode": "^3.11.5", + "mdb-angular-ui-kit": "^3.0.0", "ngx-sharebuttons": "^11.0.0", "primeicons": "^5.0.0", "primeng": "^14.0.1", @@ -666,6 +671,23 @@ "rxjs": "^6.5.3 || ^7.4.0" } }, + "node_modules/@angular/material": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.1.tgz", + "integrity": "sha512-e7DkKJTuqrSpKPhxahrqkZt6AeU5ld5/aSeCamq2dcdqfZ8otmgiajzN0cXZGwSCT2Lth6c+QV3yn8ufTJQpTw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^14.0.0 || ^15.0.0", + "@angular/cdk": "14.2.1", + "@angular/common": "^14.0.0 || ^15.0.0", + "@angular/core": "^14.0.0 || ^15.0.0", + "@angular/forms": "^14.0.0 || ^15.0.0", + "@angular/platform-browser": "^14.0.0 || ^15.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@angular/platform-browser": { "version": "14.1.3", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", @@ -3226,6 +3248,15 @@ "node": ">=6" } }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", + "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@fortawesome/fontawesome-svg-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.0.tgz", @@ -3491,6 +3522,31 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, + "node_modules/@ngrx/effects": { + "version": "14.3.2", + "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-14.3.2.tgz", + "integrity": "sha512-6bpGfA44jzwhBcmNaTwVgnFmYOX9iKPFpXyetDe41tVESo1CsNhUBPTmISDXKN9Mx2mwGbsMxrn6QFRypSsKAQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^14.0.0", + "@ngrx/store": "14.3.2", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, + "node_modules/@ngrx/store": { + "version": "14.3.2", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-14.3.2.tgz", + "integrity": "sha512-XGHjr0arh6gClo8Ce+xqJLvW9PkeXPW2tCo9Z5qMtHFI/z5dUppLVKGmMgD/fQBDyoqWTK5xu+89tDkdeZfRjQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "^14.0.0", + "rxjs": "^6.5.3 || ^7.5.0" + } + }, "node_modules/@ngtools/webpack": { "version": "14.1.3", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.1.3.tgz", @@ -9248,6 +9304,21 @@ "node": ">= 8" } }, + "node_modules/mdb-angular-ui-kit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdb-angular-ui-kit/-/mdb-angular-ui-kit-3.0.0.tgz", + "integrity": "sha512-D1gP9pC6CwYHg1O6WJeXTr6k78FNU/A55Gsez5ICTj6rM2sn3A3FoxrIYz8OGgaAVhm5NjBxX7N+2R0EF7dVwQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/animations": "^14.0.0", + "@angular/cdk": "^14.0.0", + "@angular/common": "^14.0.0", + "@angular/core": "^14.0.0", + "@angular/forms": "^14.0.0" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -14164,6 +14235,14 @@ "tslib": "^2.3.0" } }, + "@angular/material": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.2.1.tgz", + "integrity": "sha512-e7DkKJTuqrSpKPhxahrqkZt6AeU5ld5/aSeCamq2dcdqfZ8otmgiajzN0cXZGwSCT2Lth6c+QV3yn8ufTJQpTw==", + "requires": { + "tslib": "^2.3.0" + } + }, "@angular/platform-browser": { "version": "14.1.3", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.1.3.tgz", @@ -15963,6 +16042,11 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.0.tgz", "integrity": "sha512-rBevIsj2nclStJ7AxTdfsa3ovHb1H+qApwrxcTVo+NNdeJiB9V75hsKfrkG5AwNcRUNxrPPiScGYCNmLMoh8pg==" }, + "@fortawesome/fontawesome-free": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", + "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==" + }, "@fortawesome/fontawesome-svg-core": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.0.tgz", @@ -16175,6 +16259,22 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, + "@ngrx/effects": { + "version": "14.3.2", + "resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-14.3.2.tgz", + "integrity": "sha512-6bpGfA44jzwhBcmNaTwVgnFmYOX9iKPFpXyetDe41tVESo1CsNhUBPTmISDXKN9Mx2mwGbsMxrn6QFRypSsKAQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ngrx/store": { + "version": "14.3.2", + "resolved": "https://registry.npmjs.org/@ngrx/store/-/store-14.3.2.tgz", + "integrity": "sha512-XGHjr0arh6gClo8Ce+xqJLvW9PkeXPW2tCo9Z5qMtHFI/z5dUppLVKGmMgD/fQBDyoqWTK5xu+89tDkdeZfRjQ==", + "requires": { + "tslib": "^2.0.0" + } + }, "@ngtools/webpack": { "version": "14.1.3", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.1.3.tgz", @@ -20468,6 +20568,14 @@ } } }, + "mdb-angular-ui-kit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdb-angular-ui-kit/-/mdb-angular-ui-kit-3.0.0.tgz", + "integrity": "sha512-D1gP9pC6CwYHg1O6WJeXTr6k78FNU/A55Gsez5ICTj6rM2sn3A3FoxrIYz8OGgaAVhm5NjBxX7N+2R0EF7dVwQ==", + "requires": { + "tslib": "^2.0.0" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", diff --git a/angular/package.json b/angular/package.json index 8f94e78..a32068b 100644 --- a/angular/package.json +++ b/angular/package.json @@ -1,9 +1,9 @@ { "name": "sakura", - "version": "0.0.1", + "version": "0.0.3", "scripts": { "ng": "ng", - "start": "ng serve --host 192.168.0.12", + "start": "ng serve --host 192.168.0.14", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test" @@ -17,14 +17,18 @@ "@angular/core": "^14.0.0", "@angular/fire": "^7.4.1", "@angular/forms": "^14.0.0", + "@angular/material": "^14.2.1", "@angular/platform-browser": "^14.0.0", "@angular/platform-browser-dynamic": "^14.0.0", "@angular/router": "^14.0.0", "@angular/service-worker": "^14.0.0", "@fortawesome/angular-fontawesome": "^0.11.1", + "@fortawesome/fontawesome-free": "^6.0.0", "@fortawesome/fontawesome-svg-core": "^6.2.0", "@fortawesome/free-brands-svg-icons": "^6.2.0", "@fortawesome/free-solid-svg-icons": "^6.2.0", + "@ngrx/effects": "^14.3.2", + "@ngrx/store": "^14.3.2", "@types/uuid": "^8.3.4", "angular-moment-timezone": "^1.7.1", "angularx-qrcode": "^14.0.0", @@ -32,6 +36,7 @@ "firebase": "^9.9.3", "google-libphonenumber": "^3.2.30", "jsbarcode": "^3.11.5", + "mdb-angular-ui-kit": "^3.0.0", "ngx-sharebuttons": "^11.0.0", "primeicons": "^5.0.0", "primeng": "^14.0.1", @@ -55,4 +60,4 @@ "karma-jasmine-html-reporter": "~1.7.0", "typescript": "~4.7.2" } -} +} \ No newline at end of file diff --git a/angular/src/app/app.constants.ts b/angular/src/app/app.constants.ts index c1f844b..eb42cd9 100644 --- a/angular/src/app/app.constants.ts +++ b/angular/src/app/app.constants.ts @@ -58,19 +58,29 @@ export const PageListMain: Page[] = [ name: 'Аккаунт', resName: 'account', onSideBar: true, + icon: 'person' }, { code: MainPageCode.Products, name: 'Товары', resName: 'products', onSideBar: true, + icon: 'manage_search' }, { code: MainPageCode.Cart, name: 'Корзина', resName: 'cart', onSideBar: true, + icon: 'shopping_bag' }, + // { + // code: MainPageCode.Info, + // name: 'О нас', + // resName: 'info', + // onSideBar: true, + // icon: 'info' + // }, ] export const orderStatuses: OrderStatus = { diff --git a/angular/src/app/app.module.ts b/angular/src/app/app.module.ts index f930f46..90df20a 100644 --- a/angular/src/app/app.module.ts +++ b/angular/src/app/app.module.ts @@ -43,6 +43,16 @@ import { UserDataOrderComponent } from './components/user-data-order/user-data-o import {DropdownModule} from "primeng/dropdown"; import {SelectButtonModule} from 'primeng/selectbutton'; import { CalendarModule } from 'primeng/calendar'; +import {MatIconModule} from '@angular/material/icon'; +import { InfoComponent } from './pages/info/info.component'; +import { MdbCarouselModule } from 'mdb-angular-ui-kit/carousel'; +import { StoreModule } from '@ngrx/store'; +import { configReducer } from './state/config/config.reducer'; +import { EffectsModule } from '@ngrx/effects'; +import { ConfigEffects } from './state/config/config.effects'; +import {PaginatorModule} from 'primeng/paginator'; +import {InputTextModule} from 'primeng/inputtext'; +import { ChangeQuantityComponent } from './components/change-quantity/change-quantity.component'; @NgModule({ declarations: [ @@ -64,7 +74,9 @@ import { CalendarModule } from 'primeng/calendar'; CartComponent, ProductModalComponent, CheckboxGroupComponent, - UserDataOrderComponent + UserDataOrderComponent, + InfoComponent, + ChangeQuantityComponent ], imports: [ BrowserModule, @@ -101,7 +113,13 @@ import { CalendarModule } from 'primeng/calendar'; TreeSelectModule, DropdownModule, SelectButtonModule, - CalendarModule + CalendarModule, + MatIconModule, + MdbCarouselModule, + StoreModule.forRoot({config: configReducer}), + EffectsModule.forRoot([ConfigEffects]), + PaginatorModule, + InputTextModule ], providers: [DialogService, MessageService, MessagingService ], bootstrap: [AppComponent] diff --git a/angular/src/app/components/navbar/navbar.component.html b/angular/src/app/components/navbar/navbar.component.html index 52a5db0..8517cdf 100644 --- a/angular/src/app/components/navbar/navbar.component.html +++ b/angular/src/app/components/navbar/navbar.component.html @@ -1,3 +1,3 @@ -
+
Логотип
diff --git a/angular/src/app/components/navbar/navbar.component.scss b/angular/src/app/components/navbar/navbar.component.scss index 01d0de6..81e18fe 100644 --- a/angular/src/app/components/navbar/navbar.component.scss +++ b/angular/src/app/components/navbar/navbar.component.scss @@ -1,4 +1,4 @@ -.container { +.container-navbar { box-sizing: border-box; padding: 7px 0 0 5px; width: 100%; diff --git a/angular/src/app/interface/data.ts b/angular/src/app/interface/data.ts index c9d1a67..48ae207 100644 --- a/angular/src/app/interface/data.ts +++ b/angular/src/app/interface/data.ts @@ -12,7 +12,8 @@ export enum PageCode { export enum MainPageCode { Account, Products, - Cart + Cart, + Info } export interface Page { @@ -23,6 +24,7 @@ export interface Page { getMethod?: string; resName?: string; onSideBar: boolean + icon?: string; } export interface UserDataForm { @@ -150,9 +152,11 @@ export interface ModifiersGroup { export interface Modifier { id: string, + idLocal: string, name: string, groupId: string, price?: number, + quantity?: number, restrictions: { minQuantity: number, maxQuantity: number, @@ -163,8 +167,16 @@ export interface Modifier { export interface CartModifier { id: string; + idLocal: string; name: string; options: Modifier[]; + allQuantity: number; + restrictions: { + minQuantity: number, + maxQuantity: number, + freeQuantity: number, + byDefault: number + } } export interface Cart { @@ -212,7 +224,7 @@ export interface OrderModifier { } export interface DeliveryData { - paymentMethod: PaymentMethod; + paymentMethod: PaymentMethod | null; deliveryDate: Date | null; deliveryType: DeliveryType | null; persons: number; diff --git a/angular/src/app/pages/account/account.component.html b/angular/src/app/pages/account/account.component.html index 5fbf9d2..676384c 100644 --- a/angular/src/app/pages/account/account.component.html +++ b/angular/src/app/pages/account/account.component.html @@ -8,10 +8,13 @@
-