mirror of
https://github.com/jiangrui1994/CloudSaver.git
synced 2026-01-11 23:58:46 +08:00
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import type {
|
|
UserSettingStore,
|
|
GlobalSettingAttributes,
|
|
UserSettingAttributes,
|
|
} from "@/types/user";
|
|
import { settingApi } from "@/api/setting";
|
|
import { ElMessage } from "element-plus";
|
|
|
|
export const useUserSettingStore = defineStore("user", {
|
|
state: (): UserSettingStore => ({
|
|
globalSetting: null,
|
|
userSettings: {
|
|
cloud115Cookie: "",
|
|
quarkCookie: "",
|
|
},
|
|
displayStyle: (localStorage.getItem("display_style") as "table" | "card") || "card",
|
|
imagesSource: (localStorage.getItem("images_source") as "proxy" | "local") || "proxy",
|
|
}),
|
|
|
|
actions: {
|
|
async getSettings() {
|
|
const { data } = await settingApi.getSetting();
|
|
if (data) {
|
|
this.globalSetting = data.globalSetting;
|
|
this.userSettings = data.userSettings;
|
|
}
|
|
},
|
|
|
|
async saveSettings(settings: {
|
|
globalSetting?: GlobalSettingAttributes | null;
|
|
userSettings: UserSettingAttributes;
|
|
}) {
|
|
try {
|
|
await settingApi.saveSetting(settings);
|
|
await this.getSettings();
|
|
} catch (error) {
|
|
console.log(error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
setDisplayStyle(style: "table" | "card") {
|
|
this.displayStyle = style;
|
|
localStorage.setItem("display_style", style);
|
|
ElMessage.success(`切换成功,当前为${style === "table" ? "列表" : "卡片"}模式`);
|
|
},
|
|
|
|
setImagesSource(source: "proxy" | "local") {
|
|
this.imagesSource = source;
|
|
localStorage.setItem("images_source", source);
|
|
ElMessage.success(`切换成功,图片模式当前为${source === "proxy" ? "代理" : "直连"}模式`);
|
|
},
|
|
},
|
|
});
|