mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-18 16:54:25 +08:00
support changing default account/transaction category filter in statistics page
This commit is contained in:
@@ -19,6 +19,8 @@ const defaultSettings = {
|
|||||||
defaultChartType: statisticsConstants.defaultChartType,
|
defaultChartType: statisticsConstants.defaultChartType,
|
||||||
defaultChartDataType: statisticsConstants.defaultChartDataType,
|
defaultChartDataType: statisticsConstants.defaultChartDataType,
|
||||||
defaultDataRangeType: statisticsConstants.defaultDataRangeType,
|
defaultDataRangeType: statisticsConstants.defaultDataRangeType,
|
||||||
|
defaultAccountFilter: {},
|
||||||
|
defaultTransactionCategoryFilter: {},
|
||||||
sortingType: statisticsConstants.defaultSortingType
|
sortingType: statisticsConstants.defaultSortingType
|
||||||
},
|
},
|
||||||
animate: true,
|
animate: true,
|
||||||
@@ -134,6 +136,10 @@ export default {
|
|||||||
setStatisticsDefaultChartDataType: value => setSubOption('statistics', 'defaultChartDataType', value),
|
setStatisticsDefaultChartDataType: value => setSubOption('statistics', 'defaultChartDataType', value),
|
||||||
getStatisticsDefaultDateRange: () => getSubOption('statistics', 'defaultDataRangeType'),
|
getStatisticsDefaultDateRange: () => getSubOption('statistics', 'defaultDataRangeType'),
|
||||||
setStatisticsDefaultDateRange: value => setSubOption('statistics', 'defaultDataRangeType', value),
|
setStatisticsDefaultDateRange: value => setSubOption('statistics', 'defaultDataRangeType', value),
|
||||||
|
getStatisticsDefaultAccountFilter: () => getSubOption('statistics', 'defaultAccountFilter'),
|
||||||
|
setStatisticsDefaultAccountFilter: value => setSubOption('statistics', 'defaultAccountFilter', value),
|
||||||
|
getStatisticsDefaultTransactionCategoryFilter: () => getSubOption('statistics', 'defaultTransactionCategoryFilter'),
|
||||||
|
setStatisticsDefaultTransactionCategoryFilter: value => setSubOption('statistics', 'defaultTransactionCategoryFilter', value),
|
||||||
getStatisticsSortingType: () => getSubOption('statistics', 'sortingType'),
|
getStatisticsSortingType: () => getSubOption('statistics', 'sortingType'),
|
||||||
setStatisticsSortingType: value => setSubOption('statistics', 'sortingType', value),
|
setStatisticsSortingType: value => setSubOption('statistics', 'sortingType', value),
|
||||||
isEnableAnimate: () => getOption('animate'),
|
isEnableAnimate: () => getOption('animate'),
|
||||||
|
|||||||
@@ -669,6 +669,8 @@ export default {
|
|||||||
'Default Chart Type': 'Default Chart Type',
|
'Default Chart Type': 'Default Chart Type',
|
||||||
'Default Chart Data Type': 'Default Chart Data Type',
|
'Default Chart Data Type': 'Default Chart Data Type',
|
||||||
'Default Date Range': 'Default Date Range',
|
'Default Date Range': 'Default Date Range',
|
||||||
|
'Default Account Filter': 'Default Account Filter',
|
||||||
|
'Default Transaction Category Filter': 'Default Transaction Category Filter',
|
||||||
'Sort By': 'Sort By',
|
'Sort By': 'Sort By',
|
||||||
'By Amount': 'By Amount',
|
'By Amount': 'By Amount',
|
||||||
'By Display Order': 'By Display Order',
|
'By Display Order': 'By Display Order',
|
||||||
|
|||||||
@@ -669,6 +669,8 @@ export default {
|
|||||||
'Default Chart Type': '默认图表类型',
|
'Default Chart Type': '默认图表类型',
|
||||||
'Default Chart Data Type': '默认图表数据类型',
|
'Default Chart Data Type': '默认图表数据类型',
|
||||||
'Default Date Range': '默认时间范围',
|
'Default Date Range': '默认时间范围',
|
||||||
|
'Default Account Filter': '默认账号过滤',
|
||||||
|
'Default Transaction Category Filter': '默认交易分类过滤',
|
||||||
'Sort By': '排序方式',
|
'Sort By': '排序方式',
|
||||||
'By Amount': '金额',
|
'By Amount': '金额',
|
||||||
'By Display Order': '显示顺序',
|
'By Display Order': '显示顺序',
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<f7-page>
|
<f7-page>
|
||||||
<f7-navbar>
|
<f7-navbar>
|
||||||
<f7-nav-left :back-link="$t('Back')"></f7-nav-left>
|
<f7-nav-left :back-link="$t('Back')"></f7-nav-left>
|
||||||
<f7-nav-title :title="$t('Filter Accounts')"></f7-nav-title>
|
<f7-nav-title :title="$t(title)"></f7-nav-title>
|
||||||
<f7-nav-right>
|
<f7-nav-right>
|
||||||
<f7-link icon-f7="ellipsis" @click="showMoreActionSheet = true"></f7-link>
|
<f7-link icon-f7="ellipsis" @click="showMoreActionSheet = true"></f7-link>
|
||||||
<f7-link :text="$t('Save')" @click="save"></f7-link>
|
<f7-link :text="$t('Save')" @click="save"></f7-link>
|
||||||
@@ -104,11 +104,19 @@ export default {
|
|||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
loading: true,
|
loading: true,
|
||||||
|
modifyDefault: false,
|
||||||
filterAccountIds: {},
|
filterAccountIds: {},
|
||||||
showMoreActionSheet: false
|
showMoreActionSheet: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
title() {
|
||||||
|
if (this.modifyDefault) {
|
||||||
|
return 'Default Account Filter';
|
||||||
|
} else {
|
||||||
|
return 'Filter Accounts';
|
||||||
|
}
|
||||||
|
},
|
||||||
allAccountCategories() {
|
allAccountCategories() {
|
||||||
return this.$constants.account.allCategories;
|
return this.$constants.account.allCategories;
|
||||||
},
|
},
|
||||||
@@ -118,8 +126,11 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const self = this;
|
const self = this;
|
||||||
|
const query = self.$f7route.query;
|
||||||
const router = self.$f7router;
|
const router = self.$f7router;
|
||||||
|
|
||||||
|
self.modifyDefault = !!query.modifyDefault;
|
||||||
|
|
||||||
self.$store.dispatch('loadAllAccounts', {
|
self.$store.dispatch('loadAllAccounts', {
|
||||||
force: false
|
force: false
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
@@ -136,7 +147,11 @@ export default {
|
|||||||
allAccountIds[account.id] = false;
|
allAccountIds[account.id] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.filterAccountIds = self.$utilities.copyObjectTo(self.$store.state.transactionStatisticsFilter.filterAccountIds, allAccountIds)
|
if (self.modifyDefault) {
|
||||||
|
self.filterAccountIds = self.$utilities.copyObjectTo(self.$settings.getStatisticsDefaultAccountFilter(), allAccountIds);
|
||||||
|
} else {
|
||||||
|
self.filterAccountIds = self.$utilities.copyObjectTo(self.$store.state.transactionStatisticsFilter.filterAccountIds, allAccountIds);
|
||||||
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
self.logining = false;
|
self.logining = false;
|
||||||
|
|
||||||
@@ -163,9 +178,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.$store.dispatch('updateTransactionStatisticsFilter', {
|
if (self.modifyDefault) {
|
||||||
filterAccountIds: filteredAccountIds
|
self.$settings.setStatisticsDefaultAccountFilter(filteredAccountIds);
|
||||||
});
|
} else {
|
||||||
|
self.$store.dispatch('updateTransactionStatisticsFilter', {
|
||||||
|
filterAccountIds: filteredAccountIds
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
router.back();
|
router.back();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<f7-page>
|
<f7-page>
|
||||||
<f7-navbar>
|
<f7-navbar>
|
||||||
<f7-nav-left :back-link="$t('Back')"></f7-nav-left>
|
<f7-nav-left :back-link="$t('Back')"></f7-nav-left>
|
||||||
<f7-nav-title :title="$t('Filter Transaction Categories')"></f7-nav-title>
|
<f7-nav-title :title="$t(title)"></f7-nav-title>
|
||||||
<f7-nav-right>
|
<f7-nav-right>
|
||||||
<f7-link icon-f7="ellipsis" @click="showMoreActionSheet = true"></f7-link>
|
<f7-link icon-f7="ellipsis" @click="showMoreActionSheet = true"></f7-link>
|
||||||
<f7-link :text="$t('Save')" @click="save"></f7-link>
|
<f7-link :text="$t('Save')" @click="save"></f7-link>
|
||||||
@@ -109,19 +109,30 @@ export default {
|
|||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
loading: true,
|
loading: true,
|
||||||
|
modifyDefault: false,
|
||||||
filterCategoryIds: {},
|
filterCategoryIds: {},
|
||||||
showMoreActionSheet: false
|
showMoreActionSheet: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
title() {
|
||||||
|
if (this.modifyDefault) {
|
||||||
|
return 'Default Transaction Category Filter';
|
||||||
|
} else {
|
||||||
|
return 'Filter Transaction Categories';
|
||||||
|
}
|
||||||
|
},
|
||||||
allTransactionCategories: function () {
|
allTransactionCategories: function () {
|
||||||
return this.$store.state.allTransactionCategories;
|
return this.$store.state.allTransactionCategories;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
const self = this;
|
const self = this;
|
||||||
|
const query = self.$f7route.query;
|
||||||
const router = self.$f7router;
|
const router = self.$f7router;
|
||||||
|
|
||||||
|
self.modifyDefault = !!query.modifyDefault;
|
||||||
|
|
||||||
self.$store.dispatch('loadAllCategories', {
|
self.$store.dispatch('loadAllCategories', {
|
||||||
force: false
|
force: false
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
@@ -138,7 +149,11 @@ export default {
|
|||||||
allCategoryIds[category.id] = false;
|
allCategoryIds[category.id] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.filterCategoryIds = self.$utilities.copyObjectTo(self.$store.state.transactionStatisticsFilter.filterCategoryIds, allCategoryIds)
|
if (self.modifyDefault) {
|
||||||
|
self.filterCategoryIds = self.$utilities.copyObjectTo(self.$settings.getStatisticsDefaultTransactionCategoryFilter(), allCategoryIds);
|
||||||
|
} else {
|
||||||
|
self.filterCategoryIds = self.$utilities.copyObjectTo(self.$store.state.transactionStatisticsFilter.filterCategoryIds, allCategoryIds);
|
||||||
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
self.logining = false;
|
self.logining = false;
|
||||||
|
|
||||||
@@ -165,9 +180,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.$store.dispatch('updateTransactionStatisticsFilter', {
|
if (self.modifyDefault) {
|
||||||
filterCategoryIds: filteredCategoryIds
|
self.$settings.setStatisticsDefaultTransactionCategoryFilter(filteredCategoryIds);
|
||||||
});
|
} else {
|
||||||
|
self.$store.dispatch('updateTransactionStatisticsFilter', {
|
||||||
|
filterCategoryIds: filteredCategoryIds
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
router.back();
|
router.back();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -34,6 +34,10 @@
|
|||||||
</select>
|
</select>
|
||||||
</f7-list-item>
|
</f7-list-item>
|
||||||
|
|
||||||
|
<f7-list-item :title="$t('Default Account Filter')" link="/statistic/filter/account?modifyDefault=1"></f7-list-item>
|
||||||
|
|
||||||
|
<f7-list-item :title="$t('Default Transaction Category Filter')" link="/statistic/filter/category?modifyDefault=1"></f7-list-item>
|
||||||
|
|
||||||
<f7-list-item
|
<f7-list-item
|
||||||
:title="$t('Sort By')"
|
:title="$t('Sort By')"
|
||||||
smart-select :smart-select-params="{ openIn: 'sheet', closeOnSelect: true, sheetCloseLinkText: $t('Done'), scrollToSelectedItem: true }">
|
smart-select :smart-select-params="{ openIn: 'sheet', closeOnSelect: true, sheetCloseLinkText: $t('Done'), scrollToSelectedItem: true }">
|
||||||
|
|||||||
@@ -401,6 +401,8 @@ export default {
|
|||||||
endTime: dateRange ? dateRange.maxTime : undefined,
|
endTime: dateRange ? dateRange.maxTime : undefined,
|
||||||
chartType: defaultChartType,
|
chartType: defaultChartType,
|
||||||
chartDataType: defaultChartDataType,
|
chartDataType: defaultChartDataType,
|
||||||
|
filterAccountIds: self.$settings.getStatisticsDefaultAccountFilter() || {},
|
||||||
|
filterCategoryIds: self.$settings.getStatisticsDefaultTransactionCategoryFilter() || {},
|
||||||
});
|
});
|
||||||
|
|
||||||
Promise.all([
|
Promise.all([
|
||||||
|
|||||||
Reference in New Issue
Block a user