From 8e7277022b8296475d1c223df78b374b17b431bf Mon Sep 17 00:00:00 2001 From: xion Date: Fri, 18 Oct 2024 02:26:14 +0800 Subject: [PATCH] init --- apps/store/deploy/me.js | 61 +++++++++++++++++++ apps/store/deploy/query.js | 20 ++++++ apps/store/index.html | 14 +++++ .../node_modules/.vite/deps/_metadata.json | 8 +++ .../node_modules/.vite/deps/package.json | 3 + apps/store/package.json | 13 ++++ package.json | 12 ++++ pnpm-workspace.yaml | 3 + readme.md | 2 + 9 files changed, 136 insertions(+) create mode 100644 apps/store/deploy/me.js create mode 100644 apps/store/deploy/query.js create mode 100644 apps/store/index.html create mode 100644 apps/store/node_modules/.vite/deps/_metadata.json create mode 100644 apps/store/node_modules/.vite/deps/package.json create mode 100644 apps/store/package.json create mode 100644 package.json create mode 100644 pnpm-workspace.yaml create mode 100644 readme.md diff --git a/apps/store/deploy/me.js b/apps/store/deploy/me.js new file mode 100644 index 0000000..009d302 --- /dev/null +++ b/apps/store/deploy/me.js @@ -0,0 +1,61 @@ +import { store } from 'https://kevisual.xiongxiao.me/system/lib'; +import { query } from './query.js'; + +export const meStore = store.create((set, get) => { + return { + open: false, + setOpen: (open) => set({ open }), + loading: false, + setLoading: (loading) => set({ loading }), + mount: false, + setMount: (mount) => set({ mount }), + + me: null, + setMe: (me) => set({ me }), + getMe: async () => { + const res = await query.post({ + path: 'user', + key: 'me', + }); + if (res.code === 200) { + set({ me: res.data }); + } + }, + init: async () => { + const { loading, mount } = get(); + const isLogin = location.pathname === '/user/login'; + if (isLogin) return; + + if (loading || mount) return; + set({ loading: true }); + const res = await query.post({ + path: 'user', + key: 'me', + }); + set({ loading: false }); + if (res.code === 200) { + set({ me: res.data, mount: true }); + } + }, + switchOrg: async (username, type = undefined) => { + const res = await query.post({ + path: 'user', + key: 'switchOrg', + data: { + username, + type, + }, + }); + if (res.code === 200) { + const { token } = res.data; + query.saveToken(token); + // message.success('Switch success'); + // window.location.reload(); + } else { + message.error(res.message || 'Request failed'); + } + }, + }; +}, 'me'); + +meStore.getState().init(); diff --git a/apps/store/deploy/query.js b/apps/store/deploy/query.js new file mode 100644 index 0000000..f249a08 --- /dev/null +++ b/apps/store/deploy/query.js @@ -0,0 +1,20 @@ +import { QueryClient } from 'https://kevisual.xiongxiao.me/system/lib'; + +const env = window.env || {}; +const isDev = location.hostname === 'localhost'; +const productionUrl = env?.productionUrl || 'https://envision.xiongxiao.me/api/router'; +const url = isDev ? 'http://localhost:4002/api/router' : productionUrl; +export const query = new QueryClient({ + url, +}); + +query.after((res) => { + const pathname = window.location.pathname; + if (res.code === 401 && !pathname.includes('login')) { + console.log('401'); + if (env?.needLogin) { + window.location.href = env?.needLoginUrl || '/user/login'; + } + } + return res; +}); diff --git a/apps/store/index.html b/apps/store/index.html new file mode 100644 index 0000000..b618ccb --- /dev/null +++ b/apps/store/index.html @@ -0,0 +1,14 @@ + + + + + + + Document + + + + + + + \ No newline at end of file diff --git a/apps/store/node_modules/.vite/deps/_metadata.json b/apps/store/node_modules/.vite/deps/_metadata.json new file mode 100644 index 0000000..4fdefe9 --- /dev/null +++ b/apps/store/node_modules/.vite/deps/_metadata.json @@ -0,0 +1,8 @@ +{ + "hash": "5db928f7", + "configHash": "f5c9a0a4", + "lockfileHash": "e3b0c442", + "browserHash": "8fd90145", + "optimized": {}, + "chunks": {} +} \ No newline at end of file diff --git a/apps/store/node_modules/.vite/deps/package.json b/apps/store/node_modules/.vite/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/apps/store/node_modules/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/apps/store/package.json b/apps/store/package.json new file mode 100644 index 0000000..4489988 --- /dev/null +++ b/apps/store/package.json @@ -0,0 +1,13 @@ +{ + "name": "store", + "version": "0.0.1", + "description": "system store", + "main": "index.js", + "scripts": { + "pub": "envision switchOrg system && envision deploy ./deploy -v 0.0.1 -k store -y y", + "dev": "vite" + }, + "keywords": [], + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..0868800 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "system-apps", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..fa0f9ee --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'packages/*' + - 'apps/*' \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..4c0c04b --- /dev/null +++ b/readme.md @@ -0,0 +1,2 @@ +# 公共的模块 +