路徑導航,麪包屑

一. 正文內容時,左側一級菜單不關閉

1.permission表加一個字段

Pid :自關聯 讓展現做爲父權限,刪該查做爲子權限前端

 

2.改變permission_list的結構

1 for item in permissions:
2     # 構建權限列表
3     permission_list.append({
4         "url":item["permissions__url"],
5         "pk":item["permissions__pk"],
6         "pid":item["permissions__pid"],
7         "title":item["permissions__title"],
8     })

並注入sessionweb

更改中間件:數據類型變了,使用時也要變:session

1 for item in permission_list:
2      reg="^%s$"%item["url"]
3      ret=re.search(reg,current_path)

全局request加一個屬性數據結構

1 for item in permission_list:
2      reg="^%s$"%item["url"]
3      ret=re.search(reg,current_path)
4      if ret:
5          show_id=item["pid"] or item["pk"]
6          request.show_id=show_id
7          return None

用到了pk,添加pkapp

 

實現效果:url

 

點擊」添加繳費記錄時」,左側相對應的一級菜單也不會關閉spa

 

全部Session
登陸session      User_id=當前登陸用戶user表的主鍵
權限列表        permission_list=[
{'url': '/customer/list/', 'pk': 1, 'pid': None, 'title': '客戶列表'},
 {'url': '/customer/add/', 'pk': 2, 'pid': 1, 'title': '添加客戶'}, 
{'url': '/customer/edit/(?P<cid>\\d+)/', 'pk': 3, 'pid': 1, 'title': '編輯客戶'},
 {'url': '/customer/del/(?P<cid>\\d+)/', 'pk': 4, 'pid': 1, 'title': '刪除客戶'},
 {'url': '/payment/list/', 'pk': 5, 'pid': None, 'title': '繳費列表'}, 
{'url': '/payment/add/', 'pk': 6, 'pid': 5, 'title': '添加繳費記錄'},
 {'url': '/payment/edit/(?P<pid>\\d+)/', 'pk': 7, 'pid': 5, 'title': '編輯繳費記錄'},
 {'url': '/payment/del/(?P<pid>\\d+)/', 'pk': 8, 'pid': 5, 'title': '刪除繳費記錄'}
]
列名的別名:     permission_names=[
'customer_list',
 'customer_add',
 'customer_edit', 
'customer_del', 
'payment_list', 
'payment_add',
 'payment_edit',
 'payment_del'
]

菜單權限        permission_menu_dict={
'1': {
'menu_title': '信息管理',
 'menu_icon': 'fa fa-connectdevelop',
 'children': [{'title': '客戶列表', 'url': '/customer/list/', 'pk': 1}]
},
 '2': {
'menu_title': '財務管理',
 'menu_icon': 'fa fa-code-fork',
 'children': [{'title': '繳費列表', 'url': '/payment/list/', 'pk': 5}]}
}

二. 路徑導航:麪包屑

在中間件中,request在加一個屬性 3d

 1 request.breadcrumb=([
 2     {
 3         "title": "首頁",
 4         "url": "/",
 5     }
 6 ])
 7 
 8 for item in permission_list:
 9      reg="^%s$"%item["url"]
10      ret=re.search(reg,current_path)
11      if ret:
12          show_id=item["pid"] or item["pk"]
13          request.show_id=show_id
14          if item["pid"]:
15              ppermission=Permission.objects.filter(pk=item["pid"]).first()
16              request.breadcrumb.extend([
17                  {
18                      "title": ppermission.title,
19                      "url": ppermission.url,
20                  },
21                  {
22                      "title": item["title"],
23                      "url":request.path,
24                  }
25              ])
26          else:
27              request.breadcrumb.extend([
28                  {
29                      "title": item["title"],
30                      "url": item["url"],
31                  }
32              ])
33          return None

前端使用:code

1 <ol class="breadcrumb no-radius no-margin" style="border-bottom: 1px solid #ddd;">
2     {% for foo in request.breadcrumb %}
3     <li ><a href="{{ foo.url }}">{{ foo.title }}</a></li>
4     {% endfor %}
5 </ol>

.權限分配頁面數據結構

[{
    'id': 1,
    'url': '/customer/list/',
    'title': '客戶列表',
    'name': 'web:customer',
    'menu_id': 1,
    'parent_id': None,
    'menu__title': '信息管理'
}, {
    'id': 2,
    'url': '/customer/add/',
    'title': '添加客戶',
    'name': 'web:customer_add',
    'menu_id': None,
    'parent_id': 1,
    'menu__title': None
}, {
    'id': 3,
    'url': '/customer/edit/(?P<cid>\\d+)/',
    'title': '編輯客戶',
    'name': 'web:customer_edit',
    'menu_id': None,
    'parent_id': 1,
    'menu__title': None
}, {
    'id': 4,
    'url': '/customer/del/(?P<cid>\\d+)/',
    'title': '刪除客戶',
    'name': 'web:customer_del',
    'menu_id': None,
    'parent_id': 1,
    'menu__title': None
}, {
    'id': 5,
    'url': '/payment/list/',
    'title': '繳費列表',
    'name': 'web:payment',
    'menu_id': 1,
    'parent_id': None,
    'menu__title': '信息管理'
}, {
    'id': 6,
    'url': '/payment/add/',
    'title': '添加繳費記錄',
    'name': 'web:payment_add',
    'menu_id': None,
    'parent_id': 5,
    'menu__title': None
}, {
    'id': 7,
    'url': '/payment/edit/(?P<pid>\\d+)/',
    'title': '編輯繳費記錄',
    'name': 'web:payment_edit',
    'menu_id': None,
    'parent_id': 5,
    'menu__title': None
}, {
    'id': 8,
    'url': '/payment/del/(?P<pid>\\d+)/',
    'title': '刪除繳費記錄',
    'name': 'web:payment_del',
    'menu_id': None,
    'parent_id': 5,
    'menu__title': None
}]





{
    1: {
        'id': 1,
        'url': '/customer/list/',
        'title': '客戶列表',
        'name': 'web:customer',
        'menu_id': 1,
        'parent_id': None,
        'menu__title': '信息管理',
        'children': [{
            'id': 2,
            'url': '/customer/add/',
            'title': '添加客戶',
            'name': 'web:customer_add',
            'menu_id': None,
            'parent_id': 1,
            'menu__title': None
        }, {
            'id': 3,
            'url': '/customer/edit/(?P<cid>\\d+)/',
            'title': '編輯客戶',
            'name': 'web:customer_edit',
            'menu_id': None,
            'parent_id': 1,
            'menu__title': None
        }, {
            'id': 4,
            'url': '/customer/del/(?P<cid>\\d+)/',
            'title': '刪除客戶',
            'name': 'web:customer_del',
            'menu_id': None,
            'parent_id': 1,
            'menu__title': None
        }]
    },
    5: {
        'id': 5,
        'url': '/payment/list/',
        'title': '繳費列表',
        'name': 'web:payment',
        'menu_id': 1,
        'parent_id': None,
        'menu__title': '信息管理',
        'children': [{
            'id': 6,
            'url': '/payment/add/',
            'title': '添加繳費記錄',
            'name': 'web:payment_add',
            'menu_id': None,
            'parent_id': 5,
            'menu__title': None
        }, {
            'id': 7,
            'url': '/payment/edit/(?P<pid>\\d+)/',
            'title': '編輯繳費記錄',
            'name': 'web:payment_edit',
            'menu_id': None,
            'parent_id': 5,
            'menu__title': None
        }, {
            'id': 8,
            'url': '/payment/del/(?P<pid>\\d+)/',
            'title': '刪除繳費記錄',
            'name': 'web:payment_del',
            'menu_id': None,
            'parent_id': 5,
            'menu__title': None
        }]
    }
}
相關文章
相關標籤/搜索