snow 2 years ago
parent
commit
be8f3570e0

+ 1 - 1
src/components/PageContent/src/hooks/use-request.ts

@@ -110,7 +110,7 @@ export function useRequeset(props: PageContentProps) {
     () => currentCompany.value,
     () => {
       if (!notNeedCompanyFilter && isSuperUser.value) {
-        onSearch()
+        onSearch();
       }
     }
   );

+ 11 - 1
src/layout/components/navbar.vue

@@ -16,6 +16,8 @@ import HelpModal from "./help-modal.vue";
 import { initRouter } from "/@/router/utils";
 import { useCompany } from "/@/hooks/core/useCompany";
 import CryptoJS from "crypto-js";
+import { usePermissionStore } from "/@/store/modules/permission";
+import router from "/@/router";
 
 const route = useRoute();
 const { push } = useRouter();
@@ -24,9 +26,12 @@ const helpModalRef = ref<InstanceType<typeof HelpModal> | null>(null);
 const systemNotifyRef = ref<InstanceType<typeof SystemNotify>>(null);
 const { logout, toggleSideBar, pureApp, avatarsStyle } = useNav();
 
-const SuperCompanyRef = ref<InstanceType<typeof Super> | null>(null)
+const SuperCompanyRef = ref<InstanceType<typeof Super> | null>(null);
 
 const { isSuperUser, userInfo, userLevel, setUserLevel } = useUserInfo();
+
+const menuData = computed(() => usePermissionStore().wholeMenus);
+
 const { setCurrentCompany } = useCompany();
 
 const switchAccountModeText = computed(() =>
@@ -57,11 +62,16 @@ function openPurchaseSystem() {
 async function onSwitchAccountMode() {
   const isSupplier = userLevel.value === "3";
   setUserLevel(isSupplier ? "1" : "3");
+
   await initRouter({ level: isSupplier ? "1" : "3" });
 
   await nextTick(() => {
     setCurrentCompany("");
     SuperCompanyRef.value && SuperCompanyRef.value.selectAll();
+
+    router.push(
+      menuData.value[1].children[0].path + "?reload=" + userLevel.value
+    );
   });
 }
 </script>

+ 13 - 3
src/views/interest/role/addEdit.vue

@@ -338,6 +338,7 @@ const initData = async () => {
     console.log(private_data_list.value);
 
     const arr = JSON.parse(JSON.stringify(menuactionList.value));
+
     arr.map(x => {
       if (x.child && x.child.length > 0) {
         x.child.map(y => {
@@ -392,8 +393,17 @@ const initData = async () => {
       return x;
     });
 
-    menuactionList.value = arr;
-    console.log(menuactionList.value);
+    const filterMenuActionlist = list => {
+      const filter = item =>
+        item.child.filter(item => ["0", "2"].includes(item.level));
+
+      const filterMenus = filter(list);
+      const func = item => (item.child = item.child ? filter(item.child) : []);
+      filterMenus.forEach(func);
+      return filterMenus;
+    };
+
+    menuactionList.value = filterMenuActionlist(arr);
   } else if (code >= 100 && code <= 104) {
     logout();
   } else {
@@ -488,7 +498,7 @@ let indeterminateField = computed(() => {
             <el-select
               v-model="ruleForm.level"
               style="width: 100%"
-              :disabled="editType == 'view'"
+              disabled
               placeholder="菜单类型"
             >
               <el-option

+ 1 - 0
src/views/interest/role/index.vue

@@ -26,6 +26,7 @@ const form = reactive({
   page: 1,
   size: 15
 });
+
 const powers = ref([]);
 const dataList = ref([]);
 const loading = ref(true);

+ 1 - 0
src/views/supplierManage/supplierAccoutQuery/config/content.config.ts

@@ -88,6 +88,7 @@ const contentConfig: ContentConfig = {
   title: "公司账号角色查询",
   columns,
   deleteProp: "payNo",
+  notNeedCompanyFilter: true,
   statusRowProp: ({ companyCode: companyNo }) => ({ companyNo }),
   apis: {
     httpList,

+ 16 - 2
src/views/supplierManage/supplierRole/addEdit.vue

@@ -303,7 +303,22 @@ async function initForm(item: Object) {
       });
       return x;
     });
-    menuactionList.value = arr;
+
+    const filterMenuActionlist = list => {
+      const filterMenus = list.filter(
+        item => item.level === "0" || item.level === "3"
+      );
+
+      filterMenus.forEach(item => {
+        item.child = item.child
+          ? item.child.filter(item => item.level === "0" || item.level === "3")
+          : [];
+      });
+
+      return filterMenus;
+    };
+
+    menuactionList.value = filterMenuActionlist(arr);
     // console.log(menuactionList.value);
   } else if (code > 100 && code < 140) {
     logout();
@@ -384,7 +399,6 @@ const initData = async () => {
     });
 
     menuactionList.value = arr;
-    console.log(menuactionList.value);
   } else if (code >= 100 && code <= 104) {
     logout();
   } else {