From fe7fe06d48d46bf629735c66373722be10b85344 Mon Sep 17 00:00:00 2001
From: buvta <12312540+buvta@users.noreply.github.com>
Date: Mon, 7 Dec 2020 19:41:39 +0800
Subject: [PATCH] =?UTF-8?q?film=E6=B7=BB=E5=8A=A0=E8=BF=87=E6=BB=A4?=
=?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=A0=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/Film.vue | 70 ++++++++++++++++++++++++++++------------
src/lib/element/index.js | 3 +-
2 files changed, 51 insertions(+), 22 deletions(-)
diff --git a/src/components/Film.vue b/src/components/Film.vue
index ed7cbe1..372febe 100644
--- a/src/components/Film.vue
+++ b/src/components/Film.vue
@@ -20,14 +20,6 @@
:value="item.name">
-
-
-
-
+
(this.selectedAreas.length === 0) || this.selectedAreas.includes(x.area))
- filteredData = filteredData.filter(res => !this.setting.excludeR18Films || !this.containsR18Keywords(res.type))
- return filteredData
}
},
filters: {
@@ -398,12 +411,29 @@ export default {
},
filterSettings () {
this.siteClick(this.site.name)
+ },
+ list: {
+ handler (list) {
+ this.selectedClassName = this.type.name + ' ' + list.length + '/' + this.recordcount
+ if (!list.length) return
+ this.areas = [...new Set(list.map(ele => ele.area))].filter(x => x)
+ this.langs = [...new Set(list.map(ele => ele.lang))].filter(x => x)
+ this.refreshFilteredList()
+ },
+ deep: true
}
},
methods: {
...mapMutations(['SET_VIEW', 'SET_DETAIL', 'SET_VIDEO', 'SET_SHARE', 'SET_SETTING']),
- getAreas () {
- this.areas = [...new Set(this.list.map(ele => ele.area))].filter(x => x)
+ refreshFilteredList () {
+ var filteredData = this.list.filter(x => (this.selectedAreas.length === 0) || this.selectedAreas.includes(x.area))
+ filteredData = filteredData.filter(x => (this.selectedLangs.length === 0) || this.selectedLangs.includes(x.lang))
+ filteredData = filteredData.filter(res => !this.setting.excludeR18Films || !this.containsR18Keywords(res.type))
+ filteredData = filteredData.filter(res => res.year >= this.selectedYears.start)
+ filteredData = filteredData.filter(res => res.year <= this.selectedYears.end)
+ this.areas = [...new Set(filteredData.map(ele => ele.area))].filter(x => x)
+ this.langs = [...new Set(filteredData.map(ele => ele.lang))].filter(x => x)
+ this.filteredList = filteredData
},
updateSearchViewMode () {
setting.find().then(res => {
@@ -541,8 +571,6 @@ export default {
if (this.$refs.filmWaterfall) {
this.$refs.filmWaterfall.refresh()
}
- // 更新地区信息
- this.getAreas()
// 更新缓存数据
const cacheKey = this.site.key + '@' + typeTid
FILM_DATA_CACHE[cacheKey] = {
diff --git a/src/lib/element/index.js b/src/lib/element/index.js
index 3a36e61..f366367 100644
--- a/src/lib/element/index.js
+++ b/src/lib/element/index.js
@@ -1,5 +1,5 @@
import Vue from 'vue'
-import { Message, Button, Table, TableColumn, Tag, Input, Dialog, Form, FormItem, Switch, Select, Option, Checkbox, Autocomplete, Col, Tree } from 'element-ui'
+import { Message, Button, Table, TableColumn, Tag, Input, InputNumber, Dialog, Form, FormItem, Switch, Select, Option, Checkbox, Autocomplete, Col, Tree } from 'element-ui'
import Plugin from 'v-fit-columns'
Vue.use(Button)
Vue.use(Col)
@@ -7,6 +7,7 @@ Vue.use(Table)
Vue.use(TableColumn)
Vue.use(Tag)
Vue.use(Input)
+Vue.use(InputNumber)
Vue.use(Dialog)
Vue.use(Form)
Vue.use(FormItem)