wushaodong 4 жил өмнө
parent
commit
7a06a527a9

+ 2 - 1
apps/account/urls.py

@@ -9,7 +9,8 @@ urlpatterns = [
     url(r'^permission/dict/$', PermissionDictView.as_view()), # 人员管理,编辑,权限组
     url(r'^permission/all/$', PermissionsListView.as_view()), # 权限管理,编辑,加载所有权限
     url(r'^store/tree/$', StoreTreeView.as_view()), # 人员管理,管理门店,加载门店
-    url(r'^employee_tree/$', EmployeeTreeView.as_view()) #人员列表
+    url(r'^employee_tree/$', EmployeeTreeView.as_view()), #人员列表
+    url(r'^employee_tree2/$', EmployeeTreeView2.as_view()), #人员列表
 ]
 
 router = SimpleRouter()

+ 95 - 0
apps/account/views.py

@@ -320,3 +320,98 @@ class EmployeeTreeView(APIView):
             employee_data.append(agent_item)
 
         return response_ok(employee_data)
+
+class EmployeeTreeView2(APIView):
+    permission_classes = [isLogin, ]
+
+    def get(self, request):
+        # 查询当前用户管理门店树形结构
+        agent_dict = {}
+        general_agent_dict = {}
+        data = []
+
+        exist_agents = []
+        manage_storess = request.user.get_manager_range()
+        for store_id in manage_storess:
+            store = Store.objects.filter(id=store_id, enable=True).values('name','agent_id')
+            if not store:
+                continue
+            store_item = {
+                'title': store[0]['name'],
+                'id': store_id,
+                'field': 'store',
+                'children': [],
+            }
+            employees = User.objects.filter(store_id=store_id, is_active=True).values('id', 'name')
+            for employee in employees:
+                user_item = {
+                    'title': employee['name'],
+                    'id': employee['id'],
+                    'field': 'user',
+                }
+                store_item['children'].append(user_item)
+
+            try:
+                agent_dict[store[0]['agent_id']].append(store_item)
+            except:
+                agent_dict[store[0]['agent_id']] = [store_item]
+
+            exist_agents.append(store[0]['agent_id'])
+        ######## 代理
+        exist_agents = list(set(exist_agents))
+        exist_general_agents = []
+        agents = Agent.objects.filter(id__in=exist_agents).values('id', 'name', 'general_agent_id')
+        for agent in agents:
+            agent_item = {
+                'title': agent['name'],
+                'id': agent['id'],
+                'field': 'agent',
+                'children': agent_dict[agent['id']] ,
+            }
+            # 当前用户有代理商没有门店,则是代理商账号。此时加载和代理商平行的账号
+            if not request.user.store  and request.user.agent:
+                agent_users = User.objects.filter(agent_id=agent['id'], is_active=True, store__isnull=True)
+                for agent_user in agent_users:
+                    if agent_user.has_perm('customer.inner_review'):
+                        agent_user_item = {
+                            'title': agent_user.name,
+                            'id': agent_user.id,
+                            'field': 'user',
+                        }
+                        agent_item['children'].insert(0,agent_user_item)
+
+            try:
+                general_agent_dict[agent['general_agent_id']].append(agent_item)
+            except:
+                general_agent_dict[agent['general_agent_id']] = [agent_item]
+
+            exist_general_agents.append(agent['general_agent_id'])
+        ###### 总代理
+        exist_general_agents = list(set(exist_general_agents))
+        general_agents = GeneralAgent.objects.filter(id__in=exist_general_agents).values('id', 'name')
+        for general_agent in general_agents:
+            general_agent_item = {
+                'title': general_agent['name'],
+                'id': general_agent['id'],
+                'field': 'general_agent',
+                'children': general_agent_dict[general_agent['id']],
+            }
+            # 当前用户没有代理商,则是总代理账号。此时加载和总代理平行的账号
+            if not request.user.agent:
+                general_agent_users = User.objects.filter(general_agent_id=general_agent['id'], agent__isnull=True, store__isnull=True, is_active=True)
+                for general_agent_user in general_agent_users:
+                    if general_agent_user.has_perm('customer.inner_review'):
+                        general_agent_user_item = {
+                            'title': general_agent_user.name,
+                            'id': general_agent_user.id,
+                            'field': 'user',
+                        }
+                        general_agent_item['children'].insert(0, general_agent_user_item)
+            data.append(general_agent_item)
+        # 总代理只有一级,去掉总代理
+        if len(data) == 1:
+            data = data[0]['children']
+        # 代理只有一级,去掉代理
+        if len(data) == 1:
+            data = data[0]['children']
+        return response_ok(data)

+ 1 - 1
uis/views/customer/index.html

@@ -230,7 +230,7 @@
         });
 
          admin.req({
-            url: '/account/employee_tree/'
+            url: '/account/employee_tree2/'
             , done: function (res) {
                 tree.render({
                    elem: '#id_tree'  //绑定元素