Add profile articles section. Some fixes

This commit is contained in:
2019-03-24 11:58:40 +07:00
parent 5852623d49
commit 27acc81ce9
5 changed files with 43 additions and 25 deletions

View File

@@ -1,24 +1,23 @@
<template> <template>
<v-container grid-list-md> <section>
<v-layout row wrap> <div>
<v-flex xs12 sm10 md8 offset-sm1 offset-md2> <v-container fluid>
<v-container fluid> <v-layout row>
<v-layout row> <v-flex md8>
<v-flex md8> <v-text-field label="Поиск" v-model="searchTerm"></v-text-field>
<v-text-field label="Поиск" v-model="searchTerm"></v-text-field> </v-flex>
</v-flex> <v-flex md4>
<v-flex md4> <v-select label="Уровень" :items="levels" v-model="levelTerm" multiple></v-select>
<v-select label="Уровень" :items="levels" v-model="levelTerm" multiple></v-select> </v-flex>
</v-flex> </v-layout>
</v-layout> </v-container>
</v-container> </div>
</v-flex>
<v-flex v-for="article in filteredArticles" xs12 sm10 md8 offset-sm1 offset-md2 :key="article.id"> <div class="mb-3" v-for="article in filteredArticles" :key="article.id">
<list-item :article="article"></list-item> <list-item :article="article"></list-item>
</v-flex> </div>
</v-layout> </section>
</v-container>
</template> </template>
@@ -26,6 +25,12 @@
import ListItem from '@/components/Article/Details'; import ListItem from '@/components/Article/Details';
export default { export default {
props: {
userOnly: {
type: Boolean,
default: false,
},
},
data: () => ({ data: () => ({
levels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'], levels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
searchTerm: null, searchTerm: null,
@@ -39,6 +44,12 @@ export default {
const { articles, searchTerm, levelTerm } = this; const { articles, searchTerm, levelTerm } = this;
let filteredArticles = articles; let filteredArticles = articles;
if (this.userOnly) {
filteredArticles = filteredArticles.filter(
article => this.$store.getters.userData.articles[article.id]
);
}
if (searchTerm) { if (searchTerm) {
filteredArticles = filteredArticles.filter(article => filteredArticles = filteredArticles.filter(article =>
article.title.toLowerCase().indexOf(searchTerm.toLowerCase()) >= 0 article.title.toLowerCase().indexOf(searchTerm.toLowerCase()) >= 0

View File

@@ -71,7 +71,7 @@ export default {
...mapGetters(['userData']), ...mapGetters(['userData']),
userWords() { userWords() {
return this.userData.words; return this.userData.words;
} },
}, },
methods: { methods: {
setWords() { setWords() {

View File

@@ -7,7 +7,7 @@ export const buildDate = (value) => {
} }
return value.toDate(); return value.toDate();
} };
const formattedDate = (value) => { const formattedDate = (value) => {
const date = buildDate(value); const date = buildDate(value);

View File

@@ -1,7 +1,11 @@
<template> <template>
<div> <v-container grid-list-md>
<articles-list></articles-list> <v-layout row wrap>
</div> <v-flex xs12 sm10 offset-sm1>
<articles-list></articles-list>
</v-flex>
</v-layout>
</v-container>
</template> </template>

View File

@@ -17,6 +17,7 @@
<user-profile-data></user-profile-data> <user-profile-data></user-profile-data>
</v-tab-item> </v-tab-item>
<v-tab-item :key="'myArticles'"> <v-tab-item :key="'myArticles'">
<articles-list :userOnly="true"></articles-list>
</v-tab-item> </v-tab-item>
<v-tab-item :key="'myWords'"> <v-tab-item :key="'myWords'">
<user-profile-words></user-profile-words> <user-profile-words></user-profile-words>
@@ -29,6 +30,7 @@
<script> <script>
import ArticlesList from '@/components/ArticlesList';
import UserProfileData from '@/components/User/ProfileData'; import UserProfileData from '@/components/User/ProfileData';
import UserProfileWords from '@/components/User/ProfileWords'; import UserProfileWords from '@/components/User/ProfileWords';
@@ -42,6 +44,7 @@ export default {
components: { components: {
UserProfileData, UserProfileData,
UserProfileWords, UserProfileWords,
ArticlesList,
}, },
}; };
</script> </script>