فهرست منبع

登录时,获取所有字典接口运行2次问题

lxf 1 سال پیش
والد
کامیت
604613ad12
4فایلهای تغییر یافته به همراه23 افزوده شده و 10 حذف شده
  1. 1 1
      src/components/byTable/index.vue
  2. 8 5
      src/layout/index.vue
  3. 13 3
      src/store/modules/user.js
  4. 1 1
      src/utils/request.js

+ 1 - 1
src/components/byTable/index.vue

@@ -87,7 +87,7 @@ import { isFunction as isFn, isBoolean } from "./type";
 import ElementsMapping from "./ElementsMapping";
 import ComponentsMapping from "./ComponentsMapping";
 import { computed, defineComponent, getCurrentInstance, ref, watch } from "vue";
-import useUserStore from "../../store/modules/user";
+
 export default defineComponent({
   name: "Table",
   components: {

+ 8 - 5
src/layout/index.vue

@@ -22,23 +22,21 @@ import headerBar from "@/components/headerBar/header-bar";
 import useAppStore from "@/store/modules/app";
 import useSettingsStore from "@/store/modules/settings";
 
+const { proxy } = getCurrentInstance();
 const settingsStore = useSettingsStore();
 const theme = computed(() => settingsStore.theme);
 const sidebar = computed(() => useAppStore().sidebar);
 const device = computed(() => useAppStore().device);
 const needTagsView = computed(() => settingsStore.tagsView);
 const fixedHeader = computed(() => settingsStore.fixedHeader);
-
 const classObj = computed(() => ({
   hideSidebar: !sidebar.value.opened,
   openSidebar: sidebar.value.opened,
   withoutAnimation: sidebar.value.withoutAnimation,
   mobile: device.value === "mobile",
 }));
-
 const { width, height } = useWindowSize();
 const WIDTH = 992; // refer to Bootstrap's responsive design
-
 watchEffect(() => {
   if (device.value === "mobile" && sidebar.value.opened) {
     useAppStore().closeSideBar({ withoutAnimation: false });
@@ -50,15 +48,20 @@ watchEffect(() => {
     useAppStore().toggleDevice("desktop");
   }
 });
-
 function handleClickOutside() {
   useAppStore().closeSideBar({ withoutAnimation: false });
 }
-
 const settingRef = ref(null);
 function setLayout() {
   settingRef.value.openSetting();
 }
+const getAllDict = () => {
+  proxy.useUserStore()
+    .allDictMap()
+    .then(() => {})
+    .catch(() => {});
+};
+getAllDict();
 </script>
 
 <style lang="scss" scoped>

+ 13 - 3
src/store/modules/user.js

@@ -36,9 +36,6 @@ const useUserStore = defineStore("user", {
       return new Promise((resolve, reject) => {
         getInfo()
           .then((res) => {
-            allDictMap().then((res) => {
-              this.allDict = res.data
-            });
             const user = res.user;
             const avatar = user.avatar == "" || user.avatar == null ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
             if (res.roles && res.roles.length > 0) {
@@ -58,6 +55,19 @@ const useUserStore = defineStore("user", {
           });
       });
     },
+    // 获取字典
+    allDictMap() {
+      return new Promise((resolve, reject) => {
+        allDictMap()
+          .then((res) => {
+            this.allDict = res.data;
+            resolve("");
+          })
+          .catch((error) => {
+            reject(error);
+          });
+      });
+    },
     // 退出系统
     logOut() {
       return new Promise((resolve, reject) => {

+ 1 - 1
src/utils/request.js

@@ -54,8 +54,8 @@ service.interceptors.request.use(
         const s_time = sessionObj.time; // 请求时间
         const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
         if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
+          console.log(requestObj.url, "重复提交的url");
           const message = "数据正在处理,请勿重复提交";
-          console.log(s_url, "重复提交的url");
           return Promise.reject(new Error(message));
         } else {
           cache.session.setJSON("sessionObj", requestObj);