ng / frontend /src /stores /userSetting.ts
epii-1
222222
f0953a4
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" ? "代理" : "直连"}模式`);
},
},
});