| @@ -22,7 +22,7 @@ | |||
| <span> Rating: {{malls.rating}} <img src="../../../assets/star.svg"> </span> | |||
| <span>{{malls.mall_address}} <img src="../../../assets/location.svg"></span> | |||
| </div> | |||
| <img src="../../../assets/edit.svg" class="editsvg"> | |||
| <img src="../../../assets/edit.svg" class="editsvg" (click) = "selectedMall(malls)"> | |||
| </li> | |||
| </div> | |||
| @@ -26,6 +26,7 @@ | |||
| align-items: center; | |||
| position: relative; | |||
| margin: 20px; | |||
| cursor: pointer; | |||
| &:before { | |||
| content: ''; | |||
| @@ -19,6 +19,15 @@ export class MallsComponent implements OnInit { | |||
| showModal: boolean = false; | |||
| newMall: { | |||
| mall_name: string, | |||
| mall_address: string, | |||
| description: string, | |||
| image_url: string, | |||
| mall_distance: 0, | |||
| offers_count: 0, | |||
| is_bookmarked: true, | |||
| rating: 0, | |||
| soft_delete: true | |||
| advertisement: [ | |||
| { | |||
| adv_type: true, | |||
| @@ -31,13 +40,6 @@ export class MallsComponent implements OnInit { | |||
| updatedOn: string, | |||
| } | |||
| ], | |||
| description: string, | |||
| image_url: string, | |||
| is_bookmarked: true, | |||
| mall_address: string, | |||
| mall_distance: 0, | |||
| mall_name: string, | |||
| offers_count: 0, | |||
| outlet: [ | |||
| { | |||
| description: string, | |||
| @@ -51,10 +53,18 @@ export class MallsComponent implements OnInit { | |||
| rating: number | |||
| } | |||
| ], | |||
| rating: 0, | |||
| soft_delete: true | |||
| } = { | |||
| advertisement: [ | |||
| mall_name: "", | |||
| description: "", | |||
| mall_address: "", | |||
| mall_distance: 0, | |||
| image_url: "", | |||
| is_bookmarked: true, | |||
| rating: 0, | |||
| soft_delete: true, | |||
| offers_count: 0, | |||
| advertisement: [ | |||
| { | |||
| adv_type: true, | |||
| createdBy: "", | |||
| @@ -66,13 +76,6 @@ export class MallsComponent implements OnInit { | |||
| updatedOn: "2021-10-26T12:19:53.071Z" | |||
| } | |||
| ], | |||
| description: "", | |||
| image_url: "", | |||
| is_bookmarked: true, | |||
| mall_address: "", | |||
| mall_distance: 0, | |||
| mall_name: "", | |||
| offers_count: 0, | |||
| outlet: [ | |||
| { | |||
| description: "", | |||
| @@ -86,8 +89,6 @@ export class MallsComponent implements OnInit { | |||
| rating: 0 | |||
| } | |||
| ], | |||
| rating: 0, | |||
| soft_delete: true | |||
| } | |||
| currentTime: any = new Date() | |||
| @@ -106,7 +107,6 @@ export class MallsComponent implements OnInit { | |||
| arrayofMalls.push(data.mall) | |||
| }) | |||
| this.allMalls = arrayofMalls; | |||
| console.log(arrayofMalls) | |||
| this.tempMalls = arrayofMalls; | |||
| localStorage.allMalls = JSON.stringify(arrayofMalls) | |||
| @@ -126,7 +126,6 @@ export class MallsComponent implements OnInit { | |||
| } | |||
| addMall() { | |||
| this.mallService.addNewMall(this.newMall).then(response => { | |||
| alert("Mall Added Successfully") | |||
| this.showModal = false; | |||
| @@ -137,5 +136,9 @@ export class MallsComponent implements OnInit { | |||
| console.log(this.newMall) | |||
| } | |||
| selectedMall(mall: any){ | |||
| console.log(mall) | |||
| } | |||
| } | |||
| @@ -8,11 +8,45 @@ | |||
| </div> | |||
| </div> | |||
| <div class="card_upfold"> | |||
| <li *ngFor='let vendor of vendors' class="vendorList"> | |||
| <img src="{{vendor.vendorImageLink}}"> | |||
| <div class="upfold-content"> | |||
| <h5>Id:{{vendor.vendor_Id}} {{vendor.vendorName}}</h5> | |||
| <span>Ph: {{vendor.vendorOfficeNo}}</span> | |||
| <li *ngFor='let vendor of vendors' class="vendorDetails" [ngClass]='{"vendorDetails" : showOutlets === true}'> | |||
| <div class="vendorList"> | |||
| <img src="{{vendor.vendorImageLink}}" class="vendor-img"> | |||
| <div class="upfold-content"> | |||
| <h5>{{vendor.vendorName}}</h5> | |||
| <span>Id: {{vendor.vendor_Id}}</span> | |||
| <span>GstIn: {{vendor.gstNumber}}</span> | |||
| </div> | |||
| <div> | |||
| <span>{{vendor.vendorAddress}} <img src="../../../assets/location.svg"></span> | |||
| <span>Outlets: {{vendor.outlet.length}} <img src="../../../assets/outlet.svg"></span> | |||
| <span>Rating: {{vendor.ratings}} <img src="../../../assets/star.svg"></span> | |||
| </div> | |||
| <div> | |||
| <span>Active: <div | |||
| [ngClass]='{"active": vendor.active === true, "inactive": vendor.active === false }'> | |||
| </div></span> | |||
| <span>Type: {{vendor.vendorType}}</span> | |||
| <span>Ph: {{vendor.vendorOfficeNo}} Mob: {{vendor.vendorMobile}} </span> | |||
| </div> | |||
| <img src="../../../assets/expand.svg" [ngClass]="{'active': showOutlets === true}" (click)="showOutlets = !showOutlets" class="viewsvg"> | |||
| </div> | |||
| <div *ngIf='showOutlets === true'> | |||
| <li *ngFor='let outlet of vendor.outlet;let index = index' class="outletList"> | |||
| <div class="index"><div>{{index+1}}</div></div> | |||
| <img src="{{outlet.image_url}}" class="outlet-img"> | |||
| <div class="upfold-content"> | |||
| <h5>{{outlet.outlet_name}}</h5> | |||
| <p>{{outlet.description}}</p> | |||
| </div> | |||
| <div> | |||
| <span>Id: {{outlet.outlet_id}}</span> | |||
| <span>Rating: {{outlet.rating}}</span> | |||
| <span> MenuItems: {{outlet.menuitems.length}}</span> | |||
| </div> | |||
| <img src="../../../assets/visibility.svg" class="viewsvg" (click)='selectedOutlet(outlet)'> | |||
| </li> | |||
| </div> | |||
| </li> | |||
| </div> | |||
| @@ -1,23 +1,3 @@ | |||
| .card { | |||
| position: relative; | |||
| width: 100%; | |||
| height: 100%; | |||
| border-radius: 10px; | |||
| margin: 10px; | |||
| z-index: 0; | |||
| &:before{ | |||
| content: ''; | |||
| width: 100%; | |||
| height: 100%; | |||
| position: absolute; | |||
| box-shadow: 0 0 10px 1px var(--dark-grey); | |||
| filter: brightness(200%); | |||
| z-index: -1; | |||
| border-radius: 10px; | |||
| } | |||
| } | |||
| .card_header { | |||
| div { | |||
| display: flex; | |||
| @@ -33,14 +13,127 @@ | |||
| font-weight: 500; | |||
| } | |||
| } | |||
| } | |||
| .card_upfold{ | |||
| overflow: auto; | |||
| list-style: none; | |||
| height: 300px; | |||
| .vendorList { | |||
| display: flex; | |||
| align-items: center; | |||
| position: relative; | |||
| margin: 20px; | |||
| &:before { | |||
| content: ''; | |||
| position: absolute; | |||
| width: 100%; | |||
| height: 100%; | |||
| background-color: var(--grey); | |||
| filter: brightness(160%); | |||
| z-index: -1; | |||
| border-radius: 10px; | |||
| border: 1px solid var(--grey); | |||
| } | |||
| .vendor-img { | |||
| width: 100px; | |||
| height: 100px; | |||
| border-radius: 10px; | |||
| } | |||
| .viewsvg{ | |||
| border: 2px solid var(--brand-blue); | |||
| border-radius: 50px; | |||
| padding: 4px; | |||
| margin: 20px; | |||
| width: 30px; | |||
| transform: scale(100%) rotate(0deg); | |||
| transition: 0.2s transform ease-in; | |||
| cursor: pointer; | |||
| margin-right: 30px; | |||
| &:hover{ | |||
| transform: scale(110%); | |||
| transition: 0.2s all ease-in; | |||
| } | |||
| &.active{ | |||
| transform: rotate(180deg); | |||
| transition: 0.2s all ease-in; | |||
| } | |||
| } | |||
| .upfold-content { | |||
| padding: 0 10px; | |||
| position: relative; | |||
| width: 40%; | |||
| h5{ | |||
| font-size: 18px; | |||
| color: var(--dark-grey); | |||
| padding: 5px 0; | |||
| } | |||
| p { | |||
| font-size: 14px; | |||
| color: var(--grey); | |||
| overflow: hidden; | |||
| width: 300px; | |||
| height: 55px; | |||
| width: 400px; | |||
| font-weight: 500; | |||
| } | |||
| } | |||
| div{ | |||
| span { | |||
| width: 100%; | |||
| margin-right: 10px; | |||
| color: var(--grey); | |||
| font-size: 15px; | |||
| font-weight: 500; | |||
| display: inline-flex; | |||
| div{ | |||
| margin: auto 5px; | |||
| vertical-align: middle; | |||
| width: 10px; | |||
| height: 10px; | |||
| border-radius: 50px; | |||
| &.active{ | |||
| border: 2px solid greenyellow; | |||
| background-color: greenyellow; | |||
| } | |||
| &.inactive{ | |||
| border: 2px solid red; | |||
| background-color: red; | |||
| } | |||
| } | |||
| img{ | |||
| display: block; | |||
| width: 15px; | |||
| margin-left: 5px; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .vendorList { | |||
| .outletList { | |||
| display: flex; | |||
| align-items: center; | |||
| position: relative; | |||
| margin: 20px; | |||
| opacity: 1; | |||
| transition: 0.2s opacity ease-in-out; | |||
| &:before { | |||
| content: ''; | |||
| @@ -53,49 +146,117 @@ | |||
| border-radius: 10px; | |||
| border: 1px solid var(--grey); | |||
| } | |||
| .index{ | |||
| border-radius: 50%; | |||
| width: 34px; | |||
| height: 30px; | |||
| padding: 5px; | |||
| border: 2px solid var(--brand-blue); | |||
| color: var(--brand-blue); | |||
| font-weight: 500; | |||
| text-align: center; | |||
| margin: 21px; | |||
| font-size: 15px; | |||
| img { | |||
| } | |||
| .outlet-img { | |||
| width: 100px; | |||
| height: 100px; | |||
| border-radius: 10px; | |||
| } | |||
| .viewsvg{ | |||
| border: 2px solid var(--brand-blue); | |||
| border-radius: 50px; | |||
| padding: 4px; | |||
| margin: 20px; | |||
| width: 30px; | |||
| transform: scale(100%); | |||
| transition: 0.2s transform ease-in; | |||
| cursor: pointer; | |||
| margin-right: 30px; | |||
| &:hover{ | |||
| transform: scale(110%); | |||
| transition: 0.2s all ease-in; | |||
| } | |||
| } | |||
| .upfold-content { | |||
| padding: 0 10px; | |||
| padding: 0 20px; | |||
| position: relative; | |||
| width: 60%; | |||
| h5{ | |||
| font-size: 18px; | |||
| color: var(--dark-grey); | |||
| padding: 5px 0; | |||
| } | |||
| p { | |||
| text-overflow: ellipsis; | |||
| white-space: nowrap; | |||
| font-size: 14px; | |||
| color: var(--grey); | |||
| overflow: hidden; | |||
| width: 300px; | |||
| height: 55px; | |||
| font-weight: 500; | |||
| } | |||
| } | |||
| .rating { | |||
| i { | |||
| color: var(--grey); | |||
| } | |||
| } | |||
| div{ | |||
| span { | |||
| width: 100%; | |||
| margin-right: 10px; | |||
| color: var(--grey); | |||
| font-size: 15px; | |||
| font-weight: 500; | |||
| display: inline-flex; | |||
| div { | |||
| display: flex; | |||
| align-items: center; | |||
| div{ | |||
| margin: auto 5px; | |||
| vertical-align: middle; | |||
| width: 10px; | |||
| height: 10px; | |||
| border-radius: 50px; | |||
| span { | |||
| margin: 10px 0; | |||
| margin-right: 10px; | |||
| color: var(--grey); | |||
| &.active{ | |||
| border: 2px solid greenyellow; | |||
| background-color: greenyellow; | |||
| } | |||
| img { | |||
| width: 10px; | |||
| height: 10px; | |||
| &.inactive{ | |||
| border: 2px solid red; | |||
| background-color: red; | |||
| } | |||
| } | |||
| img{ | |||
| display: block; | |||
| width: 15px; | |||
| margin-left: 5px; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| .vendorDetails{ | |||
| position: relative; | |||
| &:before{ | |||
| content: ""; | |||
| position: absolute; | |||
| width: 100%; | |||
| height: 100%; | |||
| background: var(--grey); | |||
| left: 0; | |||
| transform: scaleY(107%); | |||
| border-radius: 10px; | |||
| filter: brightness(170%); | |||
| } | |||
| } | |||
| .popUp { | |||
| position: fixed; | |||
| width: 100%; | |||
| @@ -10,7 +10,8 @@ export class VendorsComponent implements OnInit { | |||
| constructor(private vendorService: VendorService) { } | |||
| vendors: any | |||
| vendors: any; | |||
| showOutlets: boolean = false; | |||
| ngOnInit() { | |||
| this.getVendorInfo(); | |||
| @@ -25,4 +26,8 @@ export class VendorsComponent implements OnInit { | |||
| }) | |||
| } | |||
| selectedOutlet(outlet: any){ | |||
| console.log(outlet) | |||
| } | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#007bcc"><path d="M0 0h24v24H0z" fill="none"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg> | |||
| @@ -0,0 +1 @@ | |||
| <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#007bcc"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg> | |||