403Webshell
Server IP : 185.208.173.17  /  Your IP : 87.236.161.98
Web Server : Microsoft-IIS/10.0
System : Windows NT SRV8576125506 10.0 build 26100 (Windows Server 2016) AMD64
User : IUSR ( 0)
PHP Version : 7.4.13
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/parsmega.nuxt/pages/products/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/parsmega.nuxt/pages/products/index.vue
<template>
	<div class="products__page">
		<breadcrumb-base class="products__breadcrumb" />
		<div class="products__count">
			{{ filteredProductsCount }}

			{{ $t("product") }}
		</div>
		<filter-column
			:filtered-products-count="filteredProductsCount"
			:filter-columns-data="filterColumns"
			@filterProducts="filterProducts"
			:is-show-category-filter="true"
		/>
		<items-column :data-source="filteredProducts" />
	</div>
</template>
<script>
import breadcrumbBase from "@/components/shared/breadcrumb/breadcrumb_base";
import filterColumn from "@/components/pages/products/products_filter_column";
import itemsColumn from "@/components/pages/products/products_items_column";

import { getProducts } from "@/api/api_list";
import { filterProductsBaseOnAcf } from "../../helper/product_helper";
import { getFilterDataByCategorySlug } from "../../store/category_filter_data";

export default {
	name: "ProductsIndex",
	async asyncData({ $axios, i18n }) {
		const locale = i18n.locale;
		const productsCount = 100;
		let page = 1;
		let isProductsExist = true;
		let products = [];

		while (isProductsExist) {
			let tempResult = await getProducts(
				$axios,
				locale,
				productsCount,
				page
			);
			products.push(...tempResult);
			if (tempResult.length < productsCount) isProductsExist = false;
			else page++;
		}

		return {
			productsDataSource: (products || []).sort(
				(a, b) => a.order.productsPage - b.order.productsPage
			)
		};
	},
	components: {
		breadcrumbBase,
		filterColumn,
		itemsColumn
	},
	computed: {
		filterColumns() {
			return getFilterDataByCategorySlug(null);
		},
		filteredProducts() {
			let filters = this.filterList || [];
			let products = this.getFilteredProductsByCategory();

			return filterProductsBaseOnAcf(filters, products);
		},
		filteredProductsCount() {
			return this.filteredProducts.length;
		}
	},
	data() {
		return {
			filterList: [],
			categories: null
		};
	},
	head() {
		return {
			title: `${this.$t("products")} | ${this.$t("parsmega")}`,
			meta: []
		};
	},
	methods: {
		filterProducts(filterData) {
			this.filterList = filterData.properties;
			this.categories = filterData.categories;
		},
		getFilteredProductsByCategory() {
			if (this.categories == null) return this.productsDataSource;
			if (this.categories.length == 0) return this.productsDataSource;

			let products = this.productsDataSource || [];

			let filteredProducts = [];
			for (let i = 0; i < products.length; i++) {
				let productCategories = products[i].categories || [];
				let isMatchCategory = false;

				this.categories.forEach((category) => {
					let productContainsCategory =
						productCategories.filter((item) => item == category)
							.length > 0;
					if (productContainsCategory) isMatchCategory = true;
				});

				if (isMatchCategory) filteredProducts.push(products[i]);
			}

			return filteredProducts;
		}
	}
};
</script>
<style lang="scss" scoped>
.products {
	&__page {
		margin: 0 auto;
		max-width: $app-max-width;
		padding-bottom: $padding-default;
		position: relative;
		width: 100%;

		@media (min-width: $desktop) {
			padding: $padding-default;
			padding-top: 0;
			position: relative;
		}
	}

	&__count {
		display: none;

		@media (min-width: $desktop) {
			color: $color-text--light;
			display: block;
			float: left;
			font-size: 13px;
			left: 2%;
			margin-right: $padding-default;
			top: 18px;
			position: absolute;
		}
	}

	&__breadcrumb {
		@media (min-width: $desktop) {
			padding-right: 30% !important;
		}
	}
}

[data-lang="en"] {
	.products {
		&__count {
			@media (min-width: $desktop) {
				float: right;
				left: unset;
				margin-left: $padding-default;
				margin-right: 0;
				right: 2%;
			}
		}

		&__breadcrumb {
			@media (min-width: $desktop) {
				padding-left: 30% !important;
				padding-right: 0 !important;
			}
		}
	}
}
</style>

Youez - 2016 - github.com/yon3zu
LinuXploit