优化
This commit is contained in:
@@ -68,7 +68,7 @@
|
||||
import API from '@api'
|
||||
import { CircleCheckFilled, Edit } from '@element-plus/icons-vue'
|
||||
import hotkeys from 'hotkeys-js'
|
||||
import { getSourceName, isInvaildSource } from '../utils/souce'
|
||||
import { getSourceName, isInvaildSource, normalizeSource } from '../utils/souce'
|
||||
|
||||
const store = useSourceStore()
|
||||
const pull = () => {
|
||||
@@ -168,6 +168,7 @@ const redo = () => {
|
||||
const saveSource = () => {
|
||||
const source = store.currentSource
|
||||
if (isInvaildSource(source)) {
|
||||
normalizeSource(source)
|
||||
API.saveSource(source).then(({ data }) => {
|
||||
const sourceName = getSourceName(source)
|
||||
if (data.isSuccess) {
|
||||
|
||||
@@ -13,8 +13,8 @@ const emptySource = isBookSource ? emptyBookSource : emptyRssSource
|
||||
export const useSourceStore = defineStore('source', {
|
||||
state: () => {
|
||||
return {
|
||||
bookSources: [] as BookSoure[], // 临时存放所有书源,
|
||||
rssSources: [] as RssSource[], // 临时存放所有订阅源
|
||||
bookSources: shallowRef([] as BookSoure[]), // 临时存放所有书源,
|
||||
rssSources: shallowRef([] as RssSource[]), // 临时存放所有订阅源
|
||||
savedSources: [] as Source[], // 批量保存到阅读app成功的源
|
||||
currentSource: JSON.parse(JSON.stringify(emptySource)) as Source, // 当前编辑的源
|
||||
currentTab: localStorage.getItem('tabName') || 'editTab',
|
||||
@@ -51,9 +51,9 @@ export const useSourceStore = defineStore('source', {
|
||||
//拉取源后保存
|
||||
saveSources(data: Source[]) {
|
||||
if (isBookSource) {
|
||||
this.bookSources = data as BookSoure[]
|
||||
this.bookSources = markRaw(data) as BookSoure[]
|
||||
} else {
|
||||
this.rssSources = data as RssSource[]
|
||||
this.rssSources = markRaw(data) as RssSource[]
|
||||
}
|
||||
},
|
||||
//批量推送
|
||||
|
||||
@@ -49,12 +49,27 @@ export const convertSourcesToMap = (sources: Source[]): Map<string, Source> => {
|
||||
return map
|
||||
}
|
||||
|
||||
export const normalizeSource = (source: any) => {
|
||||
for (const key in source) {
|
||||
const value = source[key]
|
||||
if (
|
||||
value === '' ||
|
||||
value === null ||
|
||||
(typeof value === 'string' && !value.trim())
|
||||
) {
|
||||
delete source[key]
|
||||
} else if (value instanceof Object) {
|
||||
normalizeSource(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const emptyBookSource = {
|
||||
ruleSearch: {},
|
||||
ruleBookInfo: {},
|
||||
ruleToc: {},
|
||||
ruleContent: {},
|
||||
ruleReview: {},
|
||||
// ruleReview: {},
|
||||
ruleExplore: {},
|
||||
} as BookSoure
|
||||
export const emptyRssSource = {} as RssSource
|
||||
|
||||
Reference in New Issue
Block a user