mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-15 15:37:33 +08:00
code refactor
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user