mirror of
https://github.com/cool-team-official/cool-admin-vue.git
synced 2024-11-01 06:02:38 +08:00
hasToken 优化
This commit is contained in:
parent
ae0be71e9c
commit
62020ec8a5
2
build/cool/temp/eps.d.ts
vendored
2
build/cool/temp/eps.d.ts
vendored
@ -291,7 +291,7 @@ declare namespace Eps {
|
|||||||
*/
|
*/
|
||||||
price?: number;
|
price?: number;
|
||||||
/**
|
/**
|
||||||
* 分类
|
* 分类 0-衣服 1-鞋子 2-裤子
|
||||||
*/
|
*/
|
||||||
type?: number;
|
type?: number;
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "front-next",
|
"name": "front-next",
|
||||||
"version": "5.7.8",
|
"version": "5.7.9",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --host",
|
"dev": "vite --host",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
|
@ -61,21 +61,28 @@ export default (): ModuleConfig => {
|
|||||||
document.title = config.app.name;
|
document.title = config.app.name;
|
||||||
},
|
},
|
||||||
async onLoad() {
|
async onLoad() {
|
||||||
const { user, menu } = useStore();
|
const { user, menu, app } = useStore();
|
||||||
|
|
||||||
if (user.token) {
|
// token 事件
|
||||||
|
async function hasToken(cb: () => Promise<any> | void) {
|
||||||
|
if (cb) {
|
||||||
|
app.addEvent("hasToken", cb);
|
||||||
|
|
||||||
|
if (user.token) {
|
||||||
|
await cb();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await hasToken(async () => {
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
user.get();
|
user.get();
|
||||||
// 获取菜单权限
|
// 获取菜单权限
|
||||||
await menu.get();
|
await menu.get();
|
||||||
}
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
async hasToken(cb: () => Promise<any> | void) {
|
hasToken
|
||||||
if (user.token) {
|
|
||||||
if (cb) await cb();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -99,11 +99,8 @@ async function toLogin() {
|
|||||||
user.setToken(res);
|
user.setToken(res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 用户信息
|
// token 事件
|
||||||
user.get();
|
await Promise.all(app.events.hasToken.map((e) => e()));
|
||||||
|
|
||||||
// 权限菜单
|
|
||||||
await menu.get();
|
|
||||||
|
|
||||||
// 跳转
|
// 跳转
|
||||||
router.push("/");
|
router.push("/");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { defineStore } from "pinia";
|
import { defineStore } from "pinia";
|
||||||
import { ref } from "vue";
|
import { reactive, ref } from "vue";
|
||||||
import { config } from "/@/cool";
|
import { config } from "/@/cool";
|
||||||
import { deepMerge, getBrowser, storage } from "/@/cool/utils";
|
import { deepMerge, getBrowser, storage } from "/@/cool/utils";
|
||||||
|
|
||||||
@ -15,6 +15,11 @@ export const useAppStore = defineStore("app", function () {
|
|||||||
// 是否折叠
|
// 是否折叠
|
||||||
const isFold = ref(browser.value.isMini || false);
|
const isFold = ref(browser.value.isMini || false);
|
||||||
|
|
||||||
|
// 事件
|
||||||
|
const events = reactive<{ [key: string]: any[] }>({
|
||||||
|
hasToken: []
|
||||||
|
});
|
||||||
|
|
||||||
// 折叠
|
// 折叠
|
||||||
function fold(v?: boolean) {
|
function fold(v?: boolean) {
|
||||||
if (v === undefined) {
|
if (v === undefined) {
|
||||||
@ -35,12 +40,21 @@ export const useAppStore = defineStore("app", function () {
|
|||||||
browser.value = getBrowser();
|
browser.value = getBrowser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加事件
|
||||||
|
function addEvent(name: string, func: any) {
|
||||||
|
if (func) {
|
||||||
|
events[name].push(func);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
info,
|
info,
|
||||||
browser,
|
browser,
|
||||||
isFold,
|
isFold,
|
||||||
fold,
|
fold,
|
||||||
|
events,
|
||||||
set,
|
set,
|
||||||
setBrowser
|
setBrowser,
|
||||||
|
addEvent
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -41,11 +41,14 @@
|
|||||||
</cl-upsert>
|
</cl-upsert>
|
||||||
</cl-crud>
|
</cl-crud>
|
||||||
|
|
||||||
|
<cl-dialog title="xxx" v-model="dialog.visible"> xxxx </cl-dialog>
|
||||||
|
|
||||||
<cl-form ref="Form"></cl-form>
|
<cl-form ref="Form"></cl-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="tsx" setup name="crud">
|
<script lang="tsx" setup name="crud">
|
||||||
import { useCrud, useUpsert, useTable, useForm } from "@cool-vue/crud";
|
import { useCrud, useUpsert, useTable, useForm } from "@cool-vue/crud";
|
||||||
|
import { reactive } from "vue";
|
||||||
import { useDict } from "/$/dict";
|
import { useDict } from "/$/dict";
|
||||||
|
|
||||||
const { dict } = useDict();
|
const { dict } = useDict();
|
||||||
@ -164,6 +167,10 @@ const Table = useTable({
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const dialog = reactive({
|
||||||
|
visible: false
|
||||||
|
});
|
||||||
|
|
||||||
const Form = useForm();
|
const Form = useForm();
|
||||||
|
|
||||||
// 内嵌
|
// 内嵌
|
||||||
@ -190,6 +197,8 @@ const Table2 = useTable({
|
|||||||
});
|
});
|
||||||
|
|
||||||
function openForm() {
|
function openForm() {
|
||||||
|
return (dialog.visible = true);
|
||||||
|
|
||||||
Form.value?.open({
|
Form.value?.open({
|
||||||
title: "自定义表单",
|
title: "自定义表单",
|
||||||
items: [
|
items: [
|
||||||
|
@ -5,7 +5,6 @@ export default (): ModuleConfig => {
|
|||||||
return {
|
return {
|
||||||
onLoad({ hasToken }) {
|
onLoad({ hasToken }) {
|
||||||
const { dict } = useDict();
|
const { dict } = useDict();
|
||||||
|
|
||||||
hasToken(() => {
|
hasToken(() => {
|
||||||
dict.refresh();
|
dict.refresh();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user