yf_yzl 2 年之前
父節點
當前提交
f84ffe8dbd
共有 1 個文件被更改,包括 73 次插入57 次删除
  1. 73 57
      smartfarming/utils.py

+ 73 - 57
smartfarming/utils.py

@@ -23,72 +23,88 @@ config = settings.CONFIG
 
 def perms_pc_app(type_id=1000, perms_lst=[], device_user=None):
     menu = "PC" if type_id == 1000 else "APP"
-    parent_ids = []
-    for p in perms_lst:
-        # 先判断是否是父级菜单 
-        per_obj = UserPurview.objects.filter(id=int(p), menu=menu).first()
-        if per_obj:
-            if per_obj.parent_perm_id == 0:
-                parent_ids.append(p)
-    perm_lst = []
-    for i in parent_ids:
-        parent = UserPurview.objects.get(id=int(i), menu=menu)
-        inner_parent = {
-                "menu": parent.menu,
-                "parent_perm_id": parent.parent_perm_id,
-                "pur_id": parent.id,
-                "purview_name": parent.purview_name,
-                "url": parent.url
-            }
+    if menu == "APP":
         children_lst = []
-        # 获取此父级菜单中所有的子菜单 
-        children = UserPurview.objects.filter(parent_perm_id=int(i), menu=menu)
-        for child in children:
-            if child.id in perms_lst:
-                if device_user and device_user.real_name == "yunfei" and child.parent_perm_id == 1:
-                    children_lst.append(
-                        {
-                            "menu": child.menu,
-                            "parent_perm_id": child.parent_perm_id,
-                            "pur_id": child.id,
-                            "purview_name": child.purview_name,
-                            "url": child.url
-                        }
-                    )
-                    if child.purview_name == "用户管理":
+        apps = UserPurview.objects.filter(menu=menu)
+        for i in apps:
+            children_lst.append(
+                {
+                    "menu": "APP",
+                    "parent_perm_id": 99,
+                    "pur_id": i.id,
+                    "purview_name": i.purview_name,
+                    "url": i.url
+                }
+            )
+        return children_lst
+    else:
+
+        parent_ids = []
+        for p in perms_lst:
+            # 先判断是否是父级菜单 
+            per_obj = UserPurview.objects.filter(id=int(p), menu=menu).first()
+            if per_obj:
+                if per_obj.parent_perm_id == 0:
+                    parent_ids.append(p)
+        perm_lst = []
+        for i in parent_ids:
+            parent = UserPurview.objects.get(id=int(i), menu=menu)
+            inner_parent = {
+                    "menu": parent.menu,
+                    "parent_perm_id": parent.parent_perm_id,
+                    "pur_id": parent.id,
+                    "purview_name": parent.purview_name,
+                    "url": parent.url
+                }
+            children_lst = []
+            # 获取此父级菜单中所有的子菜单 
+            children = UserPurview.objects.filter(parent_perm_id=int(i), menu=menu)
+            for child in children:
+                if child.id in perms_lst:
+                    if device_user and device_user.real_name == "yunfei" and child.parent_perm_id == 1:
                         children_lst.append(
                             {
-                                "menu": "PC",
-                                "parent_perm_id": 0,
-                                "pur_id": 38,
-                                "purview_name": "监控定位",
-                                "url": "0"
+                                "menu": child.menu,
+                                "parent_perm_id": child.parent_perm_id,
+                                "pur_id": child.id,
+                                "purview_name": child.purview_name,
+                                "url": child.url
                             }
                         )
+                        if child.purview_name == "用户管理":
+                            children_lst.append(
+                                {
+                                    "menu": "PC",
+                                    "parent_perm_id": 0,
+                                    "pur_id": 38,
+                                    "purview_name": "监控定位",
+                                    "url": "0"
+                                }
+                            )
+                            children_lst.append(
+                                {
+                                    "menu": "PC",
+                                    "parent_perm_id": 0,
+                                    "pur_id": 39,
+                                    "purview_name": "APP信息",
+                                    "url": "0"
+                                }
+                            )
+                    else:
                         children_lst.append(
                             {
-                                "menu": "PC",
-                                "parent_perm_id": 0,
-                                "pur_id": 39,
-                                "purview_name": "APP信息",
-                                "url": "0"
+                                "menu": child.menu,
+                                "parent_perm_id": child.parent_perm_id,
+                                "pur_id": child.id,
+                                "purview_name": child.purview_name,
+                                "url": child.url
                             }
                         )
-                else:
-                    children_lst.append(
-                        {
-                            "menu": child.menu,
-                            "parent_perm_id": child.parent_perm_id,
-                            "pur_id": child.id,
-                            "purview_name": child.purview_name,
-                            "url": child.url
-                        }
-                    )
-
-        if children_lst:
-            inner_parent["children"] = children_lst
-        perm_lst.append(inner_parent)
-    return perm_lst
+
+            if children_lst:
+                inner_parent["children"] = children_lst
+            perm_lst.append(inner_parent)
+        return perm_lst
 
 
 def get_perm_list(device_user):