create basic modal component
This commit is contained in:
parent
9c7c074305
commit
07d5b029f2
5 changed files with 66 additions and 6 deletions
|
@ -19,7 +19,7 @@
|
||||||
v-slot="{ item }"
|
v-slot="{ item }"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
:src="`https://picsum.photos/id/${item.uid + 50}/200/200`"
|
:src="`https://picsum.photos/id/${item.image + 50}/200/200`"
|
||||||
alt="item"
|
alt="item"
|
||||||
class="card-img-top img-fluid"
|
class="card-img-top img-fluid"
|
||||||
>
|
>
|
||||||
|
@ -29,6 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
</Cards>
|
</Cards>
|
||||||
</div>
|
</div>
|
||||||
|
<Modal/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -37,10 +38,11 @@ import Table from '@/components/Table';
|
||||||
import Navbar from '@/components/Navbar';
|
import Navbar from '@/components/Navbar';
|
||||||
import Cards from '@/components/Cards';
|
import Cards from '@/components/Cards';
|
||||||
import { mapState } from 'vuex';
|
import { mapState } from 'vuex';
|
||||||
|
import Modal from '@/components/Modal';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'app',
|
name: 'app',
|
||||||
components: { Navbar, Table, Cards },
|
components: {Modal, Navbar, Table, Cards },
|
||||||
computed: mapState(['loadedItems', 'layout'])
|
computed: mapState(['loadedItems', 'layout'])
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-3 col-xl-3">
|
<div class="col-lg-3 col-xl-2">
|
||||||
<div class="card bg-dark text-light mb-2" id="filters">
|
<div class="card bg-dark text-light mb-2" id="filters">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title text-info">Sort & Filter</h5>
|
<h5 class="card-title text-info">Sort & Filter</h5>
|
||||||
|
|
58
src/components/Modal.vue
Normal file
58
src/components/Modal.vue
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<template>
|
||||||
|
<div class="modal" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content bg-dark text-light border-secondary">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">Modal title</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<font-awesome-icon icon="window-close" class="text-light"></font-awesome-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>Modal body text goes here.</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||||
|
<button type="button" class="btn btn-primary">Save changes</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'Modal'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.modal {
|
||||||
|
background-color: rgba(0,0,0,0.4); /* Transparent dimmed overlay */
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: table !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal .container {
|
||||||
|
display: table-cell;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal .body {
|
||||||
|
box-shadow: 5px 10px #888888;
|
||||||
|
display: inline-block;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid black;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -9,10 +9,10 @@ import 'bootstrap/dist/js/bootstrap.min.js';
|
||||||
|
|
||||||
// fontawesome
|
// fontawesome
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core';
|
import { library } from '@fortawesome/fontawesome-svg-core';
|
||||||
import { faPlus, faCheckCircle, faEdit, faTrash, faCat, faSyncAlt, faSort, faSortUp, faSortDown, faTh, faList } from '@fortawesome/free-solid-svg-icons';
|
import { faPlus, faCheckCircle, faEdit, faTrash, faCat, faSyncAlt, faSort, faSortUp, faSortDown, faTh, faList, faWindowClose } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
|
||||||
|
|
||||||
library.add(faPlus, faCheckCircle, faEdit, faTrash, faCat, faSyncAlt, faSort, faSortUp, faSortDown, faTh, faList);
|
library.add(faPlus, faCheckCircle, faEdit, faTrash, faCat, faSyncAlt, faSort, faSortUp, faSortDown, faTh, faList, faWindowClose);
|
||||||
|
|
||||||
Vue.component('font-awesome-icon', FontAwesomeIcon);
|
Vue.component('font-awesome-icon', FontAwesomeIcon);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default new Vuex.Store({
|
||||||
{ uid: 4, description: 'power supply black', box: 5, image: 62 },
|
{ uid: 4, description: 'power supply black', box: 5, image: 62 },
|
||||||
{ uid: 5, description: 'pullover yellow "pesthörnchen"', box: 5, image: 84 },
|
{ uid: 5, description: 'pullover yellow "pesthörnchen"', box: 5, image: 84 },
|
||||||
{ uid: 6, description: '"blue black second skin"', box: 6, image: 72 },
|
{ uid: 6, description: '"blue black second skin"', box: 6, image: 72 },
|
||||||
{ uid: 7, description: '"the bike blog" bottle orange', box: 6, image: 71 },
|
{ uid: 7, description: '"the bike blog" bottle orange', box: 6, image: 83 },
|
||||||
{ uid: 8, description: 'tshirt guad3c', box: 6, image: 26 },
|
{ uid: 8, description: 'tshirt guad3c', box: 6, image: 26 },
|
||||||
{ uid: 9, description: 'power supply dell', box: 6, image: 74 },
|
{ uid: 9, description: 'power supply dell', box: 6, image: 74 },
|
||||||
{ uid: 10, description: 'blanket green blue', box: 6, image: 25 },
|
{ uid: 10, description: 'blanket green blue', box: 6, image: 25 },
|
||||||
|
|
Loading…
Reference in a new issue