import { defineStore } from "pinia"; import useFileSelect from "@/components/file/file/useFileSelect"; let { selectStatistics } = useFileSelect(); // 当前存储源的配置信息,数据来源为服务端配置。请求存储源后会获取其配置信息。 const useStorageConfigStore = defineStore('storageConfigStore', { state: () => { return { globalConfig: { siteName: '', directLinkPrefix: '', infoEnable: false, showLinkBtn: false, recordDownloadLog: false, showShortLink: false, showPathLink: false, tableSize: 'small', rootShowStorage: true, fileClickMode: 'dbclick', showDocument: false, debugMode: false, domain: '', icp: '', avatar: '', announcement: '', layout: 'full', showAnnouncement: false, searchEnable: false, showLogin: false, siteHomeName: '首页', siteHomeLogo: '', siteHomeLogoLink: '', siteHomeLogoTargetMode: '', maxShowSize: 1000, loadMoreSize: 50, defaultSortField: 'name', defaultSortOrder: 'asc', linkExpireTimes: '' }, folderConfig: { readmeText: null, readmeDisplayMode: null, defaultSwitchToImgMode: false, enableFileOperator: false, } } }, getters: { permission: (state) => { return { open: selectStatistics.value.isSingleSelect && selectStatistics.value.isAllFolder, preview: selectStatistics.value.isAllFile && selectStatistics.value.isSingleSelect, download: selectStatistics.value.isAllFile, link: selectStatistics.value.isAllFile && state.globalConfig.showLinkBtn && (state.globalConfig.showShortLink || state.globalConfig.showPathLink), rename: state.folderConfig.enableFileOperator && selectStatistics.value.isSingleSelect, delete: state.folderConfig.enableFileOperator, newFolder: state.folderConfig.enableFileOperator, upload: state.folderConfig.enableFileOperator, pathLink: state.globalConfig.showPathLink, shortLink: state.globalConfig.showShortLink, } } }, actions: { updateGlobalConfig(val: any) { this.globalConfig = val; }, updateFolderConfig(val: any) { this.folderConfig = val; } }, }) export default useStorageConfigStore;