|
@@ -1,6 +1,8 @@
|
|
import { Store } from "@/types";
|
|
import { Store } from "@/types";
|
|
|
|
|
|
-const store = {
|
|
|
|
|
|
+let _inited = false;
|
|
|
|
+
|
|
|
|
+const _store = {
|
|
globalMask: false,
|
|
globalMask: false,
|
|
env: {
|
|
env: {
|
|
loginName: "",
|
|
loginName: "",
|
|
@@ -8,13 +10,43 @@ const store = {
|
|
server: "",
|
|
server: "",
|
|
user: {},
|
|
user: {},
|
|
},
|
|
},
|
|
- config: window.electron.config || {
|
|
|
|
- server: "",
|
|
|
|
- loginName: "",
|
|
|
|
- password: "",
|
|
|
|
- },
|
|
|
|
|
|
+ config: JSON.parse(JSON.stringify(window.electron.config)) || {},
|
|
} as Store;
|
|
} as Store;
|
|
|
|
|
|
|
|
+const handler = function () {
|
|
|
|
+ return {
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ set(obj, prop, value) {
|
|
|
|
+ // console.log("set", obj, prop, value);
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ obj[prop] = value;
|
|
|
|
+ window.sessionStorage.setItem("store", JSON.stringify(_store));
|
|
|
|
+ return true;
|
|
|
|
+ },
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ get(obj, prop) {
|
|
|
|
+ // console.log("get", obj, prop);
|
|
|
|
+ if (!_inited) {
|
|
|
|
+ Object.assign(
|
|
|
|
+ _store,
|
|
|
|
+ JSON.parse(window.sessionStorage.getItem("store") || "{}")
|
|
|
|
+ );
|
|
|
|
+ _inited = true;
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ ["[object Object]", "[object Array]"].indexOf(
|
|
|
|
+ Object.prototype.toString.call(obj[prop])
|
|
|
|
+ ) > -1
|
|
|
|
+ ) {
|
|
|
|
+ return new Proxy(obj[prop], handler());
|
|
|
|
+ }
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ return obj[prop];
|
|
|
|
+ },
|
|
|
|
+ };
|
|
|
|
+};
|
|
|
|
+const store = new Proxy(_store, handler());
|
|
|
|
+
|
|
export { store };
|
|
export { store };
|
|
|
|
|
|
// @ts-ignore
|
|
// @ts-ignore
|