code refactor

This commit is contained in:
MaysWind
2023-08-13 20:01:44 +08:00
parent 141dc843f3
commit 41a8b8007a
4 changed files with 41 additions and 51 deletions
+11
View File
@@ -1,6 +1,17 @@
import categoryConstants from '@/consts/category.js';
import transactionConstants from '@/consts/transaction.js';
export function setCategoryModelByAnotherCategory(category, category2) {
category.id = category2.id;
category.type = category2.type;
category.parentId = category2.parentId;
category.name = category2.name;
category.icon = category2.icon;
category.color = category2.color;
category.comment = category2.comment;
category.visible = !category2.hidden;
}
export function transactionTypeToCategoryType(transactionType) {
if (transactionType === transactionConstants.allTransactionTypes.Income) {
return categoryConstants.allCategoryTypes.Income;
+13
View File
@@ -1,6 +1,8 @@
import { defineStore } from 'pinia';
import categoryConstants from '@/consts/category.js';
import iconConstants from '@/consts/icon.js';
import colorConstants from '@/consts/color.js';
import { isEquals } from '@/lib/common.js';
import services from '@/lib/services.js';
import logger from '@/lib/logger.js';
@@ -126,6 +128,17 @@ export const useTransactionCategoriesStore = defineStore('transactionCategories'
transactionCategoryListStateInvalid: true,
}),
actions: {
generateNewTransactionCategoryModel(type, parentId) {
return {
type: type || categoryConstants.allCategoryTypes.Income,
name: '',
parentId: parentId || '0',
icon: iconConstants.defaultCategoryIconId,
color: colorConstants.defaultCategoryColor,
comment: '',
visible: true
};
},
updateTransactionCategoryListInvalidState(invalidState) {
this.transactionCategoryListStateInvalid = invalidState;
},
@@ -76,6 +76,7 @@ import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
import categoryConstants from '@/consts/category.js';
import iconConstants from '@/consts/icon.js';
import colorConstants from '@/consts/color.js';
import { setCategoryModelByAnotherCategory } from '@/lib/category.js';
export default {
props: [
@@ -86,19 +87,14 @@ export default {
'open'
],
data() {
const transactionCategoriesStore = useTransactionCategoriesStore();
const newTransactionCategory = transactionCategoriesStore.generateNewTransactionCategoryModel();
return {
showState: false,
editCategoryId: null,
loading: false,
category: {
type: categoryConstants.allCategoryTypes.Income,
name: '',
parentId: '0',
icon: iconConstants.defaultCategoryIconId,
color: colorConstants.defaultCategoryColor,
comment: '',
visible: true
},
category: newTransactionCategory,
submitting: false,
resolve: null,
reject: null
@@ -148,25 +144,19 @@ export default {
self.loading = true;
self.submitting = false;
self.category.id = null;
self.category.type = categoryConstants.allCategoryTypes.Income;
self.category.parentId = '0';
self.category.name = '';
self.category.icon = iconConstants.defaultCategoryIconId;
self.category.color = colorConstants.defaultCategoryColor;
self.category.comment = '';
self.category.visible = true;
const newTransactionCategory = self.transactionCategoriesStore.generateNewTransactionCategoryModel();
setCategoryModelByAnotherCategory(self.category, newTransactionCategory);
if (options.id) {
if (options.currentCategory) {
self.setCategory(options.currentCategory);
setCategoryModelByAnotherCategory(self.category, options.currentCategory);
}
self.editCategoryId = options.id;
self.transactionCategoriesStore.getCategory({
categoryId: self.editCategoryId
}).then(category => {
self.setCategory(category);
setCategoryModelByAnotherCategory(self.category, category);
self.loading = false;
}).catch(error => {
self.loading = false;
@@ -265,16 +255,6 @@ export default {
}
this.showState = false;
},
setCategory(category) {
this.category.id = category.id;
this.category.type = category.type;
this.category.parentId = category.parentId;
this.category.name = category.name;
this.category.icon = category.icon;
this.category.color = category.color;
this.category.comment = category.comment;
this.category.visible = !category.hidden;
}
}
}
+8 -22
View File
@@ -134,6 +134,7 @@ import { useTransactionCategoriesStore } from '@/stores/transactionCategory.js';
import categoryConstants from '@/consts/category.js';
import iconConstants from '@/consts/icon.js';
import colorConstants from '@/consts/color.js';
import { setCategoryModelByAnotherCategory } from '@/lib/category.js';
export default {
props: [
@@ -141,24 +142,17 @@ export default {
'f7router'
],
data() {
const self = this;
const query = self.f7route.query;
const transactionCategoriesStore = useTransactionCategoriesStore();
const query = this.f7route.query;
const newTransactionCategory = transactionCategoriesStore.generateNewTransactionCategoryModel(parseInt(query.type), query.parentId);
newTransactionCategory.showIconSelectionSheet = false;
newTransactionCategory.showColorSelectionSheet = false;
return {
editCategoryId: null,
loading: false,
loadingError: null,
category: {
type: parseInt(query.type),
name: '',
parentId: query.parentId,
icon: iconConstants.defaultCategoryIconId,
color: colorConstants.defaultCategoryColor,
comment: '',
visible: true,
showIconSelectionSheet: false,
showColorSelectionSheet: false
},
category: newTransactionCategory,
submitting: false
};
},
@@ -216,15 +210,7 @@ export default {
self.transactionCategoriesStore.getCategory({
categoryId: self.editCategoryId
}).then(category => {
self.category.id = category.id;
self.category.type = category.type;
self.category.parentId = category.type.parentId;
self.category.name = category.name;
self.category.icon = category.icon;
self.category.color = category.color;
self.category.comment = category.comment;
self.category.visible = !category.hidden;
setCategoryModelByAnotherCategory(self.category, category);
self.loading = false;
}).catch(error => {
if (error.processed) {