base_ui/components/global/BreadCrumb.vue

115 lines
2.2 KiB
Vue
Raw Normal View History

2025-02-01 09:34:55 +00:00
<template>
<ul class="filter-list" :class="styleClass">
<li>
<RouterLink :to="{ name: 'searchResult' }" class="text-title-QSection1"
>قوانین</RouterLink
>
<span class="mr-2"></span>
</li>
<li>
<RouterLink
:to="{
name: 'search-lists',
params: {
id: vuexEntityGetter?.qanon_id,
key: 'qasection',
},
}"
class="text-title-QSection2 mr-2"
>
{{ vuexEntityGetter?.qanon_title }}
<span class="mr-2 ml-2"></span>
</RouterLink>
</li>
<li>
<a v-if="vuexEntityGetter?.other_info?.full_path">{{
vuexEntityGetter?.other_info.full_path
}}</a>
</li>
<li v-if="filters.length" class="mx-3">
:حکم =>
</li>
<li v-for="(value, index) in filters" :key="value.id" class="">
<a
:href="value[keyName]"
class="btn"
@click.prevent="onTitleClick(value)"
>
{{ normalPathKey(value[keyName]) }}
</a>
<span class="arrow-icon mr-2 ml-2"></span>
<!-- <button
@click.prevent="$emit('remove-filter', value)"
class="btn remove-filter-btn"
type="button"
>
<span class="mr-2 ml-2"></span>
</button> -->
</li>
</ul>
</template>
<script>
import { mapState } from "pinia";
export default {
props: {
filters: {
default() {
return [];
},
},
keyName: {
default: "title",
},
styleClass: {
default: "default",
},
},
computed: {
...mapState("entity", ["vuexEntityGetter"]),
},
methods: {
normalPathKey(title = "") {
return title.split(" ").slice(0, 3).join(" ");
},
onTitleClick(value) {
this.$emit("on-title-clicked", value[this.keyName]);
},
},
};
</script>
<style lang="scss" scoped>
.filter-list {
display: flex;
align-items: center;
justify-content: flex-start;
list-style: none;
margin-bottom: 1em;
li {
a {
background-color: transparent;
}
&:not(:last-child) {
a {
color: #00abff !important;
}
}
&:last-child {
a {
cursor: default;
}
.arrow-icon {
display: none;
}
}
}
}
</style>