Procházet zdrojové kódy

新增菜单Controller

chenshibin před 4 roky
rodič
revize
1eb0f784c3
2 změnil soubory, kde provedl 127 přidání a 1 odebrání
  1. 124 0
      AdminController/MenuController.py
  2. 3 1
      Ansjer/urls.py

+ 124 - 0
AdminController/MenuController.py

@@ -0,0 +1,124 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
+@AUTHOR: ASJRD018
+@NAME: AnsjerFormal
+@software: PyCharm
+@DATE: 2021/07/06 11:17
+@Version: python3.6
+@MODIFY DECORD:ansjer dev
+"""
+import json
+import time
+import urllib
+import uuid
+import boto3
+import threading
+import logging
+from boto3.session import Session
+from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
+from django.views.generic.base import View
+from Model.models import Device_Info, Role, MenuModel
+from Object.ResponseObject import ResponseObject
+from Object.TokenObject import TokenObject
+from Object.UidTokenObject import UidTokenObject
+from Service.CommonService import CommonService
+from django.db.models import Q, F
+from time import strftime
+
+
+class MenuView(View):
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.GET, request, operation)
+
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        operation = kwargs.get('operation')
+        return self.validation(request.POST, request, operation)
+
+    def validation(self, request_dict, request, operation):
+        language = request_dict.get('language', 'en')
+        response = ResponseObject(language, 'pc')
+        if operation == '??':
+            return 0
+        else:
+            tko = TokenObject(request.META.get('HTTP_AUTHORIZATION'),returntpye='pc')
+            if tko.code != 0:
+                return response.json(tko.code)
+            response.lang = tko.lang
+            userID = tko.userID
+            if operation == 'getList':
+                return self.getList(userID, request_dict, response)
+            else:
+                return response.json(404)
+
+    def getList(self, userID, request_dict, response):
+        menu_qs = MenuModel.objects.filter(parentId=0);
+        list = []
+        i = 0
+        for menu in menu_qs:
+            list.append(
+                {
+                    'id': menu.id,
+                    'parentId': menu.parentId,
+                    'path': menu.path,
+                    'name': menu.name,
+                    'component': menu.component,
+                    'meta': {
+                        'hidden': menu.hidden,
+                        'levelHidden': menu.levelHidden,
+                        'title': menu.title,
+                        'icon': menu.icon,
+                        'isCustomSvg': menu.isCustomSvg,
+                        'noKeepAlive': menu.noKeepAlive,
+                        'noClosable': menu.noClosable,
+                        'badge': menu.badge,
+                        'tabHidden': menu.tabHidden,
+                        'activeMenu': menu.activeMenu,
+                        'dot': menu.dot,
+                        'dynamicNewTab': menu.dynamicNewTab,
+                        'sort': menu.sort
+                    }
+                }
+            )
+        menu_qs = MenuModel.objects.all()
+        menulist = self.menulist(menu_qs, list)
+
+        return response.json(0, {'list': menulist})
+
+    def menulist(self,menu_qs,list):
+        for menulist in list:
+            for menu in menu_qs:
+                if menulist['id'] == menu.parentId:
+                    if 'children' not in menulist:
+                        menulist['children'] = []
+                    menulist['children'].append(
+                        {
+                        'id': menu.id,
+                        'parentId': menu.parentId,
+                        'path': menu.path,
+                        'name': menu.name,
+                        'component': menu.component,
+                        'meta': {
+                                'hidden': menu.hidden,
+                                'levelHidden': menu.levelHidden,
+                                'title': menu.title,
+                                'icon': menu.icon,
+                                'isCustomSvg': menu.isCustomSvg,
+                                'noKeepAlive': menu.noKeepAlive,
+                                'noClosable': menu.noClosable,
+                                'badge': menu.badge,
+                                'tabHidden': menu.tabHidden,
+                                'activeMenu': menu.activeMenu,
+                                'dot': menu.dot,
+                                'dynamicNewTab': menu.dynamicNewTab,
+                                'sort': menu.sort
+                            }
+                        }
+                    )
+                    self.menulist(menu_qs,menulist['children'])
+
+        return list

+ 3 - 1
Ansjer/urls.py

@@ -19,7 +19,7 @@ from Controller import FeedBack, EquipmentOTA, EquipmentInfo, AdminManage, AppIn
     OrderTaskController, HistoryUIDController, UIDManageUserController, SerialNumberController, CompanyController, \
     RegionController, VPGController, LanguageController, TestController, DeviceConfirmRegion, S3GetStsController, \
     DetectControllerV2, ShadowController, TestDetectController, PcInfo, PctestController, DeviceDebug
-from AdminController import UserLoginController, RoleController
+from AdminController import UserLoginController, RoleController, MenuController
 
 urlpatterns = [
     url(r'^testApi/(?P<operation>.*)$', TestApi.testView.as_view()),
@@ -343,6 +343,8 @@ urlpatterns = [
     #角色管理
     re_path('roleManagement/(?P<operation>.*)', RoleController.RoleView.as_view()),
 
+    #菜单管理
+    re_path('menuManagement/(?P<operation>.*)', MenuController.MenuView.as_view()),
 
     #后台界面接口 -----------------------------------------------------
     re_path('(?P<path>.*)', LogManager.errorPath),