Stackedit/src/store/img.js
2022-10-29 15:46:57 +08:00

90 lines
3.1 KiB
JavaScript

import utils from '../services/utils';
const checkStorageLocalKey = 'img/checkedStorage';
const workspacePathLocalKey = 'img/workspaceImgPath';
export default {
namespaced: true,
state: {
// 当前图片上传中的临时ID
currImgId: null,
// 选择的存储图床信息
checkedStorage: {
type: 'workspace', // 目前存储类型分三种 token 与 tokenRepo 、workspace
provider: null, // 对应是何种账号
sub: '/imgs/{YYYY}-{MM}-{DD}', // 对应 token 中的sub
sid: null,
},
// 当前仓库图片存储位置 key 为path value 为true
workspaceImagePath: {
'/imgs/{YYYY}-{MM}-{DD}': true,
},
},
mutations: {
setCurrImgId: (state, value) => {
state.currImgId = value;
},
clearCurrImg: (state) => {
state.currImg = null;
},
changeCheckedStorage: (state, value) => {
if (value) {
state.checkedStorage = {
type: value.type, // 目前存储类型分两种 token 与 tokenRepo
provider: value.provider, // 对应是何种账号
sub: value.sub, // 对应 token 中的sub
sid: value.sid,
};
} else {
state.checkedStorage = {
type: null, // 目前存储类型分两种 token 与 tokenRepo
provider: null, // 对应是何种账号
sub: null, // 对应 token 中的sub
sid: null,
};
}
},
setWorkspaceImgPath: (state, value) => {
state.workspaceImagePath = value;
localStorage.setItem(workspacePathLocalKey, JSON.stringify(state.workspaceImagePath));
},
addWorkspaceImgPath: (state, value) => {
state.workspaceImagePath[value] = true;
state.workspaceImagePath = utils.deepCopy(state.workspaceImagePath);
localStorage.setItem(workspacePathLocalKey, JSON.stringify(state.workspaceImagePath));
},
removeWorkspaceImgPath: (state, value) => {
delete state.workspaceImagePath[value];
state.workspaceImagePath = utils.deepCopy(state.workspaceImagePath);
localStorage.setItem(workspacePathLocalKey, JSON.stringify(state.workspaceImagePath));
},
},
getters: {
currImgId: state => state.currImgId,
getCheckedStorage: state => state.checkedStorage,
getCheckedStorageSub: state => state.checkedStorage.sub,
getWorkspaceImgPath: state => state.workspaceImagePath,
},
actions: {
setCurrImgId({ commit }, imgId) {
commit('setCurrImgId', imgId);
},
clearImg({ commit }) {
commit('clearCurrImg');
},
changeCheckedStorage({ commit }, checkedStorage) {
commit('changeCheckedStorage', checkedStorage);
localStorage.setItem(checkStorageLocalKey, JSON.stringify(checkedStorage));
},
setWorkspaceImgPath({ commit }, workspaceImgPath) {
commit('setWorkspaceImgPath', workspaceImgPath);
},
addWorkspaceImgPath({ commit }, workspaceImgPathValue) {
commit('addWorkspaceImgPath', workspaceImgPathValue);
},
removeWorkspaceImgPath({ commit }, workspaceImgPathValue) {
commit('removeWorkspaceImgPath', workspaceImgPathValue);
},
},
};