@@ -70,7 +70,7 @@ export default { | |||||
token: '', orders: '', loading: true} | token: '', orders: '', loading: true} | ||||
}, | }, | ||||
methods: {}, | methods: {}, | ||||
beforeCreate() { | created() { | ||||
fetch("/panel/services", { | fetch("/panel/services", { | ||||
method: 'GET', | method: 'GET', | ||||
headers: {'Content-Type': 'application/json', | headers: {'Content-Type': 'application/json', | ||||
@@ -1,9 +1,9 @@ | |||||
<template> | <template> | ||||
<section class="services-pane youtube" > | <section class="services-pane youtube" > | ||||
<h4>{{site.charAt(0).toUpperCase() + site.slice(1)}}</h4> | <h4>{{site.charAt(0).toUpperCase() + site.slice(1)}}</h4> | ||||
<ul :key="service.id" v-for="service in filter(site)"> | <ul :key="service.id" v-for="service in filter"> | ||||
<li><span>{{service.name}}</span><span>{{service.price}}</span><span>{{service.minimum.toLocaleString('en')}}</span><span>{{service.maximum.toLocaleString('en')}}</span> | <li><span>{{service.name}}</span><span>{{service.price}}</span><span>{{service.minimum.toLocaleString('en')}}</span><span>{{service.maximum.toLocaleString('en')}}</span> | ||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plus-square-fill" viewBox="0 0 16 16"> | <svg @click="$emit('select', service)" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-plus-square-fill" viewBox="0 0 16 16"> | ||||
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z"/> | <path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z"/> | ||||
</svg> | </svg> | ||||
</li> | </li> | ||||
@@ -12,16 +12,17 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
function filter(site) { | function filter() { | ||||
if (!this.services) {return} | if (!this.services || !this.site) {return} | ||||
return this.services.filter(function(s) { | return this.services.filter((s) => { | ||||
return s.site == site | return s.site == this.site | ||||
}) | }) | ||||
} | } | ||||
export default { | export default { | ||||
props: ['services', 'site'], | props: ['services', 'site'], | ||||
methods: {filter} | emits: ['select'], | ||||
computed: {filter} | |||||
} | } | ||||
</script> | </script> |
@@ -8,15 +8,16 @@ | |||||
</div> | </div> | ||||
<div class="services-legend"><h5>Name</h5> | <div class="services-legend"><h5>Name</h5> | ||||
<h5>Credits per 1000</h5><h5>Min Qt.</h5><h5>Max Qt.</h5></div> | <h5>Credits per 1000</h5><h5>Min Qt.</h5><h5>Max Qt.</h5></div> | ||||
<ServicePane :site="'youtube'" :services="services"></ServicePane> | <ServicePane :site="'youtube'" :services="services" @select="select"></ServicePane> | ||||
<ServicePane :site="'instagram'" :services="services"></ServicePane> | <ServicePane :site="'instagram'" :services="services" @select="select"></ServicePane> | ||||
<ServicePane :site="'twitter'" :services="services"></ServicePane> | <ServicePane :site="'twitter'" :services="services" @select="select"></ServicePane> | ||||
<ServicePane :site="'tiktok'" :services="services"></ServicePane> | <ServicePane :site="'tiktok'" :services="services" @select="select"></ServicePane> | ||||
<div id="overlay"> | <div id="overlay" v-if="selected"> | ||||
<img class="cancel icon" src="../../images/cancel-icon2.svg" alt=""/> | |||||
<div class="overlay-item"> | <div class="overlay-item"> | ||||
<img @click="selected = null" class="cancel icon" src="../../images/cancel-icon2.svg" alt=""/> | |||||
<img class="icon" src="../../images/youtube-icon.svg" alt=""> | <img class="icon" src="../../images/youtube-icon.svg" alt=""> | ||||
<h3>Location Targeted Views</h3> | <h3>Location Targeted Views</h3> | ||||
<h4>Cost: 50</h4> | |||||
<h4>Quantity</h4> | <h4>Quantity</h4> | ||||
<div><input required type="number"><span> / 10000</span></div> | <div><input required type="number"><span> / 10000</span></div> | ||||
<h4>Location</h4> | <h4>Location</h4> | ||||
@@ -38,10 +39,13 @@ | |||||
<script> | <script> | ||||
import ServicePane from './service-pane.vue' | import ServicePane from './service-pane.vue' | ||||
function select(service) { | |||||
this.selected = service | |||||
} | |||||
export default { | export default { | ||||
data() { | data() { | ||||
return {servicePane: true, services: ''} | return {servicePane: true, services: null, selected: null } | ||||
}, | }, | ||||
components: {ServicePane}, | components: {ServicePane}, | ||||
props: ['token'], | props: ['token'], | ||||
@@ -55,5 +59,6 @@ export default { | |||||
response.json().then(data => {this.services = data}) | response.json().then(data => {this.services = data}) | ||||
}) | }) | ||||
}, | }, | ||||
methods: {select} | |||||
} | } | ||||
</script> | </script> |
@@ -687,26 +687,27 @@ div.register-area.active { | |||||
} | } | ||||
main.panel { | main.panel { | ||||
min-height: 750px; | // min-height: 750px; | ||||
height: 90vh; | height: 100vh; | ||||
// max-height: 100vh; | // max-height: 100vh; | ||||
background-image: linear-gradient(315deg, #ff4e00 0%, #ec9f05 74%); | background-image: linear-gradient(315deg, #ff4e00 0%, #ec9f05 74%); | ||||
} | } | ||||
#panel { | #panel { | ||||
top: 50px; | top: 50px; | ||||
padding: 10px; | padding: 0 5%; | ||||
margin: auto; | margin: auto; | ||||
position: relative; | position: relative; | ||||
max-width: 450px; | max-width: 800px; | ||||
height: 600px; | height: 90%; | ||||
display: flex; | display: flex; | ||||
gap: 10px; | gap: 10px; | ||||
} | } | ||||
#sidebar { | #sidebar { | ||||
position: relative; | position: relative; | ||||
width: 35px; | width: 6%; | ||||
max-width: 55px; | |||||
height: 50%; | height: 50%; | ||||
color: white; | color: white; | ||||
background: transparent; | background: transparent; | ||||
@@ -719,23 +720,22 @@ main.panel { | |||||
} | } | ||||
svg { | svg { | ||||
width: 35px; | width: 100%; | ||||
height: 35px; | height: 35px; | ||||
color: white; | color: white; | ||||
} | } | ||||
a.selected svg { | a.selected svg { | ||||
color: vars.getColor("brand-orange"); | color: vars.getColor("brand-orange"); | ||||
} | } | ||||
} | } | ||||
#panel #main { | #panel #main { | ||||
height: 100%; | |||||
background: white; | background: white; | ||||
width: 100%; | width: 100%; | ||||
flex-shrink: 1; | flex-shrink: 1; | ||||
margin-left: auto; | margin-left: auto; | ||||
position: relative; | position: relative; | ||||
// opacity: 1; | |||||
@include vars.hovering3; | @include vars.hovering3; | ||||
transition: opacity 0.5s ease; | transition: opacity 0.5s ease; | ||||
vertical-align: middle; | vertical-align: middle; | ||||
@@ -980,7 +980,7 @@ main.panel { | |||||
margin-top: 20px; | margin-top: 20px; | ||||
border-top: 1px solid darkgrey; | border-top: 1px solid darkgrey; | ||||
border-bottom: 1px solid darkgrey; | border-bottom: 1px solid darkgrey; | ||||
height: 2em; | min-height: 2em; | ||||
background-color: rgb(239, 239, 239); | background-color: rgb(239, 239, 239); | ||||
color: rgb(118, 118, 118); | color: rgb(118, 118, 118); | ||||
padding-right: 30px; | padding-right: 30px; | ||||
@@ -1071,12 +1071,11 @@ main.panel { | |||||
top: 0; | top: 0; | ||||
.overlay-item { | .overlay-item { | ||||
transform: translateY(-50px); | |||||
width: 20em; | width: 20em; | ||||
height: 20em; | min-height: 20em; | ||||
background: white; | background: white; | ||||
margin: auto; | margin: auto; | ||||
margin-top: 25%; | margin-top: 20%; | ||||
opacity: 1; | opacity: 1; | ||||
border-radius: 4px; | border-radius: 4px; | ||||
padding: 5px; | padding: 5px; | ||||
@@ -1111,9 +1110,10 @@ main.panel { | |||||
} | } | ||||
.cancel { | .cancel { | ||||
position: absolute; | |||||
width: 30px; | width: 30px; | ||||
margin-right: 10px; | right: 10px; | ||||
margin-top: 10px; | top: 10px; | ||||
} | } | ||||
button { | button { | ||||
@@ -44,6 +44,7 @@ spellcheck='false'> | |||||
</ul> | </ul> | ||||
</div> | </div> | ||||
@yield('content') | @yield('content') | ||||
@section('footer') | |||||
<footer class='footer text-center'> | <footer class='footer text-center'> | ||||
<div class='foot-links'> | <div class='foot-links'> | ||||
<a href="/terms">Terms & Policy</a> | <a href="/terms">Terms & Policy</a> | ||||
@@ -52,5 +53,6 @@ spellcheck='false'> | |||||
</div> | </div> | ||||
<small>©Copyright 2021 Trendplays Network, Inc.</small> | <small>©Copyright 2021 Trendplays Network, Inc.</small> | ||||
</footer> | </footer> | ||||
@show | |||||
@yield('scripts') | @yield('scripts') | ||||
</body> | </body> |
@@ -15,6 +15,8 @@ | |||||
</div> | </div> | ||||
</main> | </main> | ||||
@endsection | @endsection | ||||
@section('footer') | |||||
@endsection | |||||
@section('scripts') | @section('scripts') | ||||
@parent | @parent | ||||