%PDF- %PDF-
Direktori : /home/ugotscom/3vfm3/resources/js/components/ |
Current File : /home/ugotscom/3vfm3/resources/js/components/packages.vue |
<template> <div> <div class="container-fluid searchHeader"> <div class="container"> </div> </div> <div class="container"> <div v-if="loading" style="height:250px"> <img src="images/Flip Flop.gif" class="loading-gif"> </div> <div v-else> <div class="row"> <div class="col-md-3"> <h3 class="filterTitle">Categories</h3> <div class="form-check"> <label class="form-check-label"> <input type="radio" class="form-check-input" name="cat1" id="" v-model="city" value="1" checked> International </label> </div> <div class="form-check"> <label class="form-check-label"> <input type="radio" class="form-check-input" name="cat1" id="" v-model="city" value="2" checked> Domestic </label> </div> <h5 class="filterTitle">Themes</h5> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" class="form-check-input" name="" id="" v-model="themes" value="Adventure" checked > Adventure </label> </div> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" class="form-check-input" name="" id="" v-model="themes" value="Eco" checked > Eco Tourism </label> </div> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" class="form-check-input" name="" id="" v-model="themes" value="Experience" checked > New Experience </label> </div> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" class="form-check-input" name="" id="" v-model="themes" value="Romantic" checked> Romantic </label> </div> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" class="form-check-input" name="" id="" v-model="themes" value="Outdoors" checked> Wild Outdoors </label> </div> </div> <div class="col-md-9"> <div v-for="pack in computedProducts" :key="pack.id"> <div class="vendor-thumbnail"> <div class=""> <div class="row"> <div class="col-md-4"> <img class="vendor-thumbnail-image" v-bind:src="'images/'+pack.main_image" /> </div> <div class="col-md-8"> <div class="row"> <div class="col"> <p class="property_title">{{pack.package_name}}</p> <p class="property_price">Rs {{pack.price}}</p> </div> </div> <div class="row"> <div class="col"> <div class="summary_item"> <div class="summary_title"></div> <div class="summary_info">{{pack.days_nights}}</div> </div> </div> </div> <div class="row"> <div class="col"> <div class="summary_item"> <div class="summary_title"></div> <div class="summary_info">{{pack.themes}}</div> </div> <p>{{pack.smalldescription}}</p> </div> </div> <div class="row"> <div class="col"> <div class="wrapperbutton"> <router-link v-bind:to="'/packageDetails/'+pack.package_id"><button id="button2">View Details</button></router-link> <!-- <router-link v-bind:to="'/propertydetail/'+pack.id"><button id="button3">Enquire Now</button></router-link> --> </div> </div> </div> </div> </div> </div> </div> </div> <pagination :data="packages" @pagination-change-page="getResults"></pagination> </div> </div> </div> </div> </div> </template> <script> export default { data(){ return { packages:[], tasks:[], searchQuery:'', isTyping: false, isLoading: false, property_type:null, property_for:null, itemId:this.$route.query.id, dete:this.$route.query.name, city: [], loading: true, test:[], themes: [], products: [ {name:'test1', color:'red', size:'XL'}, {name:'test2', color:'black', size:'L'}, {name:'test3', color:'red', size:'L'}, {name:'test4', color:'black', size:'XL'}, {name:'test5', color:'red', size:'L'}, {name:'test6', color:'yellow', size:'XL'}, {name:'test7', color:'black', size:'L'} ], sortBy: 'name', keyword: '', } }, watch: { searchQuery: _.debounce(function() { this.isTyping = false; }, 500), isTyping: function(value) { if (!value) { this.searchUser(this.searchQuery); } } }, methods:{ searchUser: function(searchQuery) { this.isLoading = true; axios.get('client/searchquery?q=' + searchQuery) .then(response => { this.isLoading = false; this.users = response.data; }); }, getResults:function(page = 1) { axios.get('properties?page=' + page) .then(response => { this.properties = response.data; }); }, loadusers:function(){ axios.get('/packages').then(response => { this.packages = response.data this.test=this.packages.data }) .finally(() => this.loading = false); }, loadtotalcount(){ axios.get('/client/totalcount') .then(response => { this.tasks = response.data }) }, getPosts:function () { axios.get('/client').then(function(response){ this.rows = response.data; }.bind(this)); }, searchProperty:function (){ axios.post('/properties/searchproperty', { property_for: this.property_for, }).then(response => { this.properties = response.data}) } }, computed:{ computedProducts: function () { return this.test.filter((item) => { return (this.keyword.length === 0 || item.package_name.match(this.keyword)) && (this.city.length === 0 || this.city == item.city) && (this.themes.length === 0 || this.themes.includes(item.themes)) }) } }, created: function(){ this.loadusers(), this.loadtotalcount() }, } </script> <style scoped> .filterTitle{ font-weight: 700; color: #000; margin-bottom: 14px; font-size: 16px; line-height: 16px; margin-top: 22px; } .searchHeader{ background: #f9c11e; height: 60px; margin-bottom: 20px; } .loading-gif { position: absolute; top: 50%; left: 50%; margin: -50px 0px 0px -50px; } </style>