feat: 🚀 站点切换
This commit is contained in:
@@ -42,27 +42,29 @@ import { ref } from "vue";
|
||||
import { logoutApi } from "@/api/modules/login";
|
||||
import { useMsg } from "@/hooks/useMsg";
|
||||
import { useUserStore } from "@/stores/modules/user";
|
||||
|
||||
import { ElMessageBox } from "element-plus";
|
||||
import { outLogin } from "@/utils/outLogin";
|
||||
//getLanguageCutoverApi
|
||||
import { getLanguageListApi, getLanguageCutoverApi } from "@/api/modules/global";
|
||||
const userStore: any = useUserStore();
|
||||
|
||||
const userStore = useUserStore();
|
||||
document.cookie = `lang=zh_cn`;
|
||||
const langs = ref<any>([]);
|
||||
const name = ref("");
|
||||
//站点列表
|
||||
|
||||
// 站点列表
|
||||
const getLanguageList = async () => {
|
||||
const result = await getLanguageListApi();
|
||||
if (result?.code === 0) {
|
||||
const { data } = result;
|
||||
langs.value = data;
|
||||
getLanguageCutover(data[0]?.id);
|
||||
console.log(userStore?.languageType, "===== userStore?.languageType==========");
|
||||
let id = userStore?.languageType ? userStore?.languageType : data[0]?.id;
|
||||
getLanguageCutover(id);
|
||||
}
|
||||
};
|
||||
getLanguageList();
|
||||
//站点切换接口
|
||||
|
||||
// 站点切换接口
|
||||
const getLanguageCutover = async (id: any) => {
|
||||
const result = await getLanguageCutoverApi(id);
|
||||
if (result?.code === 0) {
|
||||
@@ -73,10 +75,12 @@ const getLanguageCutover = async (id: any) => {
|
||||
name.value = names[0]?.country_name;
|
||||
}
|
||||
};
|
||||
//站点切换事件
|
||||
|
||||
// 站点切换事件
|
||||
const handleCommand = (val: string) => {
|
||||
getLanguageCutover(val);
|
||||
};
|
||||
|
||||
// 退出登录
|
||||
const logout = () => {
|
||||
ElMessageBox.confirm("您是否确认重新登录?", "温馨提示", {
|
||||
@@ -84,7 +88,7 @@ const logout = () => {
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
//1.退出登录
|
||||
// 1. 退出登录
|
||||
const result: any = await logoutApi();
|
||||
if (result?.code === 0) {
|
||||
outLogin();
|
||||
|
||||
@@ -34,30 +34,36 @@ import { useTabsStore } from "@/stores/modules/tabs";
|
||||
import { useGlobalStore } from "@/stores/modules/global";
|
||||
import { useKeepAliveStore } from "@/stores/modules/keepAlive";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
// import { initCache } from "./init/init";
|
||||
import { useUserStore } from "@/stores/modules/user";
|
||||
const userStore = useUserStore();
|
||||
|
||||
// import { useMsg } from "@/hooks/useMsg";
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const tabStore = useTabsStore();
|
||||
const globalStore = useGlobalStore();
|
||||
const keepAliveStore = useKeepAliveStore();
|
||||
|
||||
// // refresh current page
|
||||
// const refreshCurrentPage: Function = inject("refresh") as Function;
|
||||
|
||||
// const refresh = async () => {
|
||||
// // initCache(data);
|
||||
// setTimeout(() => {
|
||||
// keepAliveStore.removeKeepAliveName(route.name as string);
|
||||
// refreshCurrentPage(false);
|
||||
// nextTick(() => {
|
||||
// keepAliveStore.addKeepAliveName(route.name as string);
|
||||
// refreshCurrentPage(true);
|
||||
// });
|
||||
// }, 300);
|
||||
// };
|
||||
// refresh current page
|
||||
const refreshCurrentPage: Function = inject("refresh") as Function;
|
||||
|
||||
const refresh = async () => {
|
||||
// initCache(data);
|
||||
setTimeout(() => {
|
||||
keepAliveStore.removeKeepAliveName(route.name as string);
|
||||
refreshCurrentPage(false);
|
||||
nextTick(() => {
|
||||
keepAliveStore.addKeepAliveName(route.name as string);
|
||||
refreshCurrentPage(true);
|
||||
});
|
||||
}, 300);
|
||||
};
|
||||
watch(
|
||||
() => userStore.languageType,
|
||||
(newVal: any) => {
|
||||
refresh();
|
||||
console.log(newVal, "我是tab");
|
||||
}
|
||||
);
|
||||
// maximize current page
|
||||
const maximize = () => {
|
||||
globalStore.setGlobalState("maximize", true);
|
||||
|
||||
@@ -31,6 +31,7 @@ import { useTabsStore } from "@/stores/modules/tabs";
|
||||
import { useAuthStore } from "@/stores/modules/auth";
|
||||
import { useKeepAliveStore } from "@/stores/modules/keepAlive";
|
||||
import { TabsPaneContext, TabPaneName } from "element-plus";
|
||||
|
||||
import MoreButton from "./components/MoreButton.vue";
|
||||
|
||||
const route = useRoute();
|
||||
@@ -55,9 +56,6 @@ watch(
|
||||
() => {
|
||||
if (route.meta.isFull) return;
|
||||
tabsMenuValue.value = route.fullPath;
|
||||
// const TITLES_OBJ = {
|
||||
// "/articleManagement/list/edit?type=add": "添加文章"
|
||||
// };
|
||||
let title: any = route.query.title ? route.query.title : route.meta.title;
|
||||
const tabsParams = {
|
||||
icon: route.meta.icon as string,
|
||||
|
||||
Reference in New Issue
Block a user