diff --git a/modules/web/src/store/sourceStore.js b/modules/web/src/store/sourceStore.js index 85bcfcaf6..81a67a117 100644 --- a/modules/web/src/store/sourceStore.js +++ b/modules/web/src/store/sourceStore.js @@ -72,7 +72,7 @@ export const useSourceStore = defineStore("source", { saveCurrentSource() { let source = this.currentSource, map = this.sourcesMap; - map.set(getSourceUniqueKey(source), Object.create(source)); + map.set(getSourceUniqueKey(source), JSON.parse(JSON.stringify(source))); this.saveSources(Array.from(map.values())); }, // 更改当前编辑的源qq diff --git a/modules/web/src/utils/souce.ts b/modules/web/src/utils/souce.ts index d3d007889..8e2405d8e 100644 --- a/modules/web/src/utils/souce.ts +++ b/modules/web/src/utils/souce.ts @@ -1,49 +1,49 @@ -import { Source } from '../source' - - -const isNullOrBlank = (string: string | null | undefined | number) => string == null || (string as string).length === 0 || /^\s+$/.test(string as string) -const isBookSource = (source: Source) => "bookSourceName" in source - -export const isInvaildSource: (source: Source) => boolean = (source) => { - if (isBookSource(source)) { - return !isNullOrBlank(source.bookSourceName) && - !isNullOrBlank(source.bookSourceUrl) && - !isNullOrBlank(source.bookSourceType) - } - return !isNullOrBlank(source.sourceName) && - !isNullOrBlank(source.sourceName) -} - -export const getSourceUniqueKey = (source: Source) => isBookSource(source) ? source.bookSourceUrl : source.sourceUrl; - -export const isSourceMatches: (source: Source, searchKey: string) => boolean = (source, searchKey) => { - // TODO: 正则和普通字符串识别 识别 * . \ [ ] <= => { - const map = new Map(); - sources.forEach((source) => - map.set(getSourceUniqueKey(source), source) - ); - return map; -} - -export const emptyBookSource = { - ruleSearch: {}, - ruleBookInfo: {}, - ruleToc: {}, - ruleContent: {}, - ruleReview: {}, - ruleExplore: {} -} -export const emptyRssSource = {} +import { Source } from '../source' + + +const isNullOrBlank = (string: string | null | undefined | number) => string == null || (string as string).length === 0 || /^\s+$/.test(string as string) +const isBookSource = (source: Source) => "bookSourceName" in source + +export const isInvaildSource: (source: Source) => boolean = (source) => { + if (isBookSource(source)) { + return !isNullOrBlank(source.bookSourceName) && + !isNullOrBlank(source.bookSourceUrl) && + !isNullOrBlank(source.bookSourceType) + } + return !isNullOrBlank(source.sourceName) && + !isNullOrBlank(source.sourceName) +} + +export const getSourceUniqueKey = (source: Source) => isBookSource(source) ? source.bookSourceUrl : source.sourceUrl; + +export const isSourceMatches: (source: Source, searchKey: string) => boolean = (source, searchKey) => { + // TODO: 正则和普通字符串识别 识别 * . \ [ ] <= => { + const map = new Map(); + sources.forEach((source) => + map.set(getSourceUniqueKey(source), source) + ); + return map; +} + +export const emptyBookSource = { + ruleSearch: {}, + ruleBookInfo: {}, + ruleToc: {}, + ruleContent: {}, + ruleReview: {}, + ruleExplore: {} +} +export const emptyRssSource = {}