Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Lesson4/regExp.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h5>Original text</h5>
<p>Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't .Lorem 'ipsum' dolor sit amet 'consectetur' adipisicing elit. Neque, aren't.</p>
<h4>Regexp text</h4>
<p class="regexp"></p>
<script>
document.addEventListener('DOMContentLoaded',e => {

let text = document.querySelector('p').textContent;

text = text.replaceAll(/\s'\b/g,' "')

text = text.replaceAll(/'\B/g, '" ')

document.querySelector('.regexp').innerText = text;
});
</script>
</body>
</html>
15 changes: 15 additions & 0 deletions Lesson5/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -169,3 +169,18 @@ img {
border: none;
border-bottom: 2px solid #fafafa;
}
.cart-block {
display: none;
position: absolute;
z-index: 1;
width: 65%;
height: auto;

top: 50px;
background: #fff;
color: #000;
padding: 25px;
}
.active {
display: block !important;
}
29 changes: 25 additions & 4 deletions Lesson5/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,37 @@
<div class="logo">Интернет-магазин</div>
<div class="cart">
<form action="#" class="search-form">
<input type="text" class="search-field">
<button class="btn-search" type="submit">
<input type="text" class="search-field" v-model="searchLine">
<button class="btn-search" @click="filterGoods(searchLine)" type="submit">
<i class="fas fa-search"></i>
</button>
</form>
<button class="btn-cart" type="button">Корзина</button>
<button class="btn-cart" type="button" @click="showCart = !showCart">Корзина</button>
<div class="cart-block" v-bind:class="{ active: showCart}">
<p v-if="!cardProducts.length">Корзина пуста</p>
<div class="product-item" v-if="cardProducts.length" v-for="cart of cardProducts" :key="cart.id_product">
<img :src="imgCatalog" alt="Some img">
<div class="desc">
<h3>{{cart.product_name}}</h3>
<p>{{cart.price}}₽</p>
<button class="buy-btn" @click="removeProduct(cart)">Удалить</button>
</div>
</div>
</div>
</div>
</header>
<main>
<div class="products">
<div v-if="filtered.length" class="products">
<div class="product-item" v-for="product of filtered" :key="product.id_product">
<img :src="imgCatalog" alt="Some img">
<div class="desc">
<h3>{{product.product_name}}</h3>
<p>{{product.price}}₽</p>
<button class="buy-btn" @click="addProduct(product)">Купить</button>
</div>
</div>
</div>
<div class="products" v-else>
<div class="product-item" v-for="product of products" :key="product.id_product">
<img :src="imgCatalog" alt="Some img">
<div class="desc">
Expand Down
24 changes: 21 additions & 3 deletions Lesson5/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,12 @@ const app = new Vue({
data: {
catalogUrl: '/catalogData.json',
products: [],
imgCatalog: 'https://via.placeholder.com/200x150'
imgCatalog: 'https://via.placeholder.com/200x150',
filtered:[],
cardProducts:[],
searchLine:'',
showCart:false

},
methods: {
getJson(url) {
Expand All @@ -16,8 +21,21 @@ const app = new Vue({
})
},
addProduct(product) {
console.log(product.id_product);
}
this.cardProducts.push(product);

},
removeProduct(product) {


this.cardProducts.splice(product, 1);

},
filterGoods(value){

const regexp = new RegExp(value, 'i');
this.filtered = this.products.filter(product =>regexp.test(product.product_name));

}
},
beforeCreate() {
console.log('beforeCreate');
Expand Down