| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | #!/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 jsonimport timeimport urllibimport uuidimport boto3import threadingimport loggingfrom boto3.session import Sessionfrom django.http import JsonResponse, HttpResponseRedirect, HttpResponsefrom django.views.generic.base import Viewfrom Model.models import Device_Info, Role, MenuModelfrom Object.ResponseObject import ResponseObjectfrom Object.TokenObject import TokenObjectfrom Object.UidTokenObject import UidTokenObjectfrom Service.CommonService import CommonServicefrom django.db.models import Q, Ffrom time import strftimeclass 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)            if operation == 'doEdit':                return self.doEdit(userID, request_dict, response)            if operation == 'doDelete':                return self.doDelete(userID, request_dict, response)            else:                return response.json(404)    def getList(self, userID, request_dict, response):        menu_qs = MenuModel.objects.filter(parentId=0)        list = []        for menu in menu_qs:            list.append(                {                    'id': menu.id,                    'parentId': menu.parentId,                    'path': menu.path,                    'name': menu.name,                    'component': menu.component,                    'menutype': menu.menutype,                    'menu_code': menu.menu_code,                    '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.filter()        menulist = []        for objlist in list:            menulist.append(self.menulist(menu_qs, objlist))        return response.json(0, {'list': menulist})    def menulist(self, menu_qs, objlist):        if objlist is None:            return        for menu in menu_qs:            if objlist['id'] == menu.parentId:                if 'children' not in objlist:                    objlist['children'] = []                obj = {                    'id': menu.id,                    'parentId': menu.parentId,                    'path': menu.path,                    'name': menu.name,                    'component': menu.component,                    'menutype': menu.menutype,                    'menu_code': menu.menu_code,                    '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                    }                }                objlist['children'].append(                    obj                )                self.menulist(menu_qs, obj)        return objlist    def doEdit(self, userID, request_dict, response):        print('request_dict: ', request_dict)        data_dict = CommonService.request_dict_to_dict(request_dict)        if data_dict['isEdit']:            # data_dict.index(76)            data_dict.pop('isEdit')            keys = ['parentId', 'name', 'path', 'component', 'hidden', 'alwaysShow', 'levelHidden', 'title', 'icon',                    'isCustomSvg', 'noKeepAlive', 'badge', 'tabHidden', 'activeMenu', 'dot', 'dynamicNewTab',                    'redirect', 'menu_code', 'menutype', 'sort']            data = {}            for key in keys:                if key in data_dict:                    data[key] = data_dict[key]            MenuModel.objects.filter(id=data_dict['id']).update(**data)        else:            data_dict.pop('isEdit')            MenuModel.objects.create(**data_dict)        return response.json(0)    def doDelete(self, userID, request_dict, response):        id = request_dict.get('id', '')        MenuModel.objects.filter(id=id).delete()        return response.json(0)
 |