Browse Source

Merge branch 'master' of http://git.zzliaoyuan.com:4000/wushaodong/decorate

lijiangwei 4 years ago
parent
commit
bd185a68bd

+ 2 - 0
apps/account/models.py

@@ -77,6 +77,8 @@ class User(AbstractBaseUser, PermissionsMixin):
             ('browse_user', u'查看'),
             ('add_user', u'添加'),
             ('delete_user', u'删除'),
+            ('check_user', u'入职审核'),
+            ('manager_store', u'管理门店'),
         ]
 
     def __unicode__(self):

+ 7 - 1
apps/account/serializers.py

@@ -27,9 +27,11 @@ class JWTSerializer(JSONWebTokenSerializer):
 
             if user:
                 if not user.is_active:
-                    msg = u'禁用帐户,禁止登录'
+                    msg = u'禁用帐户,禁止登录'
                     BizLog.objects.addnew(user,  BizLog.INSERT,u'禁用帐户[%s]尝试登录系统,IP[%s]' % (user.username, get_remote_addr(self.request)))
                     raise serializers.ValidationError(msg)
+                if user.status != User.INSERVICE:
+                    raise serializers.ValidationError('当前账号非在职状态,禁止登录!')
 
                 payload = jwt_payload_handler(user)
                 BizLog.objects.addnew(user, BizLog.INSERT,
@@ -54,6 +56,8 @@ class EmployeeSerializer(serializers.ModelSerializer):
     agent_text = serializers.CharField(source='agent.name', read_only=True)
     store_text = serializers.CharField(source='store.name', read_only=True)
     gender_text = serializers.CharField(source='get_gender_display', read_only=True)
+    status_text = serializers.CharField(source='get_status_display', read_only=True)
+    check_user_text = serializers.CharField(source='check_user.name', read_only=True)
     groups = serializers.SerializerMethodField()
     group_ids = serializers.PrimaryKeyRelatedField(source='groups', many=True, read_only=True)
     manager_barnchs = serializers.SerializerMethodField()
@@ -77,6 +81,8 @@ class EmployeeSerializer(serializers.ModelSerializer):
         # 代理商添加的账号,默认就是操作人所在的代理商
         user = self.context['request'].user
         validated_data['create_user'] = user
+        validated_data['check_user'] = user
+        validated_data['status'] = User.INSERVICE
         instance = super(EmployeeSerializer, self).create(validated_data)
         instance.set_password(validated_data['password'])
         instance.save()

+ 4 - 3
apps/account/urls.py

@@ -5,9 +5,10 @@ from apps.account.views import *
 urlpatterns = [
     url(r'^login/$', LoginView.as_view()),
     url(r'^token_refresh/$', RefreshTokenView.as_view()),
-    url(r'^permission/dict/$', PermissionDictView.as_view()),
-    url(r'^permission/all/$', PermissionsListView.as_view()),
-    url(r'^store/tree/$', StoreTreeView.as_view()),
+
+    url(r'^permission/dict/$', PermissionDictView.as_view()), # 人员管理,编辑,权限组
+    url(r'^permission/all/$', PermissionsListView.as_view()), # 权限管理,编辑,加载所有权限
+    url(r'^store/tree/$', StoreTreeView.as_view()), # 人员管理,管理门店,加载门店
 ]
 
 router = SimpleRouter()

+ 26 - 2
apps/account/views.py

@@ -83,14 +83,34 @@ class EmployeeViewSet(CustomModelViewSet):
                               u'删除账号[%s],id=%d' % (instance.username, instance.id))
         super(EmployeeViewSet, self).perform_destroy(instance)
 
+    @permission_required('account.check_user')
+    @action(methods=['post'], detail=True)
+    def join(self, request, pk):
+        try:
+            with transaction.atomic():
+                instance = self.get_object()
+                instance.check_user = request.user
+                instance.status = User.INSERVICE
+                instance.save()
+                BizLog.objects.addnew(self.request.user, BizLog.INSERT,
+                                      u'员工[%s]入职,id=%d' % (instance.name, instance.id))
+            return response_ok()
+        except Exception as e:
+            traceback.print_exc()
+            return response_error(u'入职失败')
+
+    @permission_required('account.manager_store')
     @action(methods=['post'], detail=True)
     def branch(self, request, pk):
         data = json.loads(request.POST.get('sotres'))
         try:
             with transaction.atomic():
+                instance = self.get_object()
                 ManageStoreUser.objects.filter(manage_user_id=pk).delete()
                 for row in data:
                     ManageStoreUser.objects.create(store_id=row, manage_user_id=pk)
+                BizLog.objects.addnew(self.request.user, BizLog.INSERT,
+                                      u'设置账号[%s]管理门店,id=%d' % (instance.username, instance.id),data)
             return response_ok()
         except Exception as e:
             traceback.print_exc()
@@ -133,7 +153,7 @@ class GroupsViewSet(CustomModelViewSet):
             # if user_count:
             #     raise CustomError(u'该权限组已分配给用户,禁止删除!')
 
-            BizLog.objects.addnew(self.request.user, BizLog.UPDATE,
+            BizLog.objects.addnew(self.request.user, BizLog.DELETE,
                                   u'删除权限组[%s],id=%d' % (instance.name, instance.id))
             instance.delete()
         return response_ok()
@@ -141,6 +161,7 @@ class GroupsViewSet(CustomModelViewSet):
 class PermissionsListView(APIView):
     permission_classes = [isLogin, ]
 
+    @permission_required('account.manager_permissions')
     def get(self, request):
         rows = Permission.objects.all().exclude(name__startswith='Can')
         perms_menus = PermissionMenu()
@@ -162,6 +183,8 @@ class PermissionsListView(APIView):
 
 class PermissionDictView(APIView):
     permission_classes = [isLogin, ]
+
+    @permission_required('account.manager_store')
     def get(self, request):
         rows = Group.objects.filter()
         print()
@@ -175,6 +198,7 @@ class PermissionDictView(APIView):
 class StoreTreeView(APIView):
     permission_classes = [isLogin, ]
 
+    @permission_required('account.manager_store')
     def get(self, request):
         id = request.GET.get('id')
         store_data = []
@@ -194,7 +218,7 @@ class StoreTreeView(APIView):
             stores = Store.objects.filter(agent_id=agent['id'], enable=True).values('id','name')
             for store in stores:
                 manage_store = ManageStoreUser.objects.filter(manage_user_id=id, store_id=store['id']).first()
-                checked = True and manage_store or False
+                checked = manage_store and True or False
                 store_item = {
                     'title': store['name'],
                     'id': store['id'],

+ 3 - 0
apps/agent/serializers.py

@@ -3,6 +3,7 @@ import datetime
 from rest_framework import serializers
 from django.conf import settings
 from apps.agent.models import Agent,Store
+from utils.booleancharfield import BooleanCharField
 
 class AgentSerializer(serializers.ModelSerializer):
     create_user_text = serializers.CharField(source='create_user.name', read_only=True)
@@ -31,6 +32,8 @@ class StoreSerializer(serializers.ModelSerializer):
     create_user_text = serializers.CharField(source='create_user.name', read_only=True)
     status_text = serializers.CharField(source='get_status_display', read_only=True)
     check_user_text = serializers.CharField(source='check_user.name', read_only=True)
+    agent_text = serializers.CharField(source='agent.name', read_only=True)
+    enable_text = BooleanCharField(source='enable', read_only=True)
 
     class Meta:
         model = Store

+ 20 - 1
apps/agent/views.py

@@ -8,10 +8,11 @@ from django.conf import settings
 
 from utils import response_ok, response_error
 from utils.exceptions import CustomError
+from apps.log.models import BizLog
 from .models import Agent,Store
 from .serializers import AgentSerializer,StoreSerializer
 from .filters import AgentFilter,StoreFilter
-from utils.permission import isLogin
+from utils.permission import isLogin, permission_required
 from apps.agent.serializers import AgentComboboxSerializer,StoreComboboxSerializer
 
 class AgentViewSet(CustomModelViewSet):
@@ -19,18 +20,25 @@ class AgentViewSet(CustomModelViewSet):
     queryset = Agent.objects.filter()
     serializer_class = AgentSerializer
 
+    @permission_required('agent.view_agent')
     def filter_queryset(self, queryset):
         queryset = queryset.filter()
         f = AgentFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    @permission_required('agent.add_agent')
     def perform_create(self, serializer):
         super(AgentViewSet, self).perform_create(serializer)
         instance = serializer.instance
         validated_data = serializer.validated_data
+        BizLog.objects.addnew(self.request.user, BizLog.INSERT,
+                              u'添加代理商[%s],id=%d' % (instance.name, instance.id), validated_data)
 
+    @permission_required('agent.delete_agent')
     def destroy(self, request, *args, **kwargs):
         instance = self.get_object()
+        BizLog.objects.addnew(self.request.user, BizLog.DELETE,
+                              u'删除代理商[%s],id=%d' % (instance.name, instance.id))
         super(AgentViewSet, self).perform_destroy(instance)
         return response_ok()
 
@@ -39,21 +47,30 @@ class StoreViewSet(CustomModelViewSet):
     queryset = Store.objects.filter()
     serializer_class = StoreSerializer
 
+    @permission_required('agent.view_store')
     def filter_queryset(self, queryset):
         queryset = queryset.filter()
         f = StoreFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    @permission_required('agent.add_store')
     def perform_create(self, serializer):
         super(StoreViewSet, self).perform_create(serializer)
         instance = serializer.instance
         validated_data = serializer.validated_data
+        BizLog.objects.addnew(self.request.user, BizLog.INSERT,
+                              u'添加门店[%s],id=%d' % (instance.name, instance.id), validated_data)
 
+
+    @permission_required('agent.delete_store')
     def destroy(self, request, *args, **kwargs):
         instance = self.get_object()
+        BizLog.objects.addnew(self.request.user, BizLog.DELETE,
+                              u'删除门店[%s],id=%d' % (instance.name, instance.id))
         super(StoreViewSet, self).perform_destroy(instance)
         return response_ok()
 
+    @permission_required('agent.check_store')
     @action(methods=['post'], detail=True)
     def check(self, request, pk):
         # 审核
@@ -69,6 +86,8 @@ class StoreViewSet(CustomModelViewSet):
             instance.status = status
             instance.check_time = timezone.now()
             instance.save()
+            BizLog.objects.addnew(None, request.user, BizLog.INSERT,
+                                  u'审核门店[%s]状态为[%s],id=%d' % (instance.name, status, instance.id))
         except CustomError as e:
             return response_error(e.get_error_msg())
         except Exception as e:

+ 4 - 18
apps/customer/models.py

@@ -17,12 +17,12 @@ class ReportCustomer(models.Model):
         (REPEAT_REPORT, '重复报备')
     )
 
-    name = models.CharField(max_length=100, verbose_name=u"姓名")
-    tel = models.CharField(max_length=50, verbose_name=u'电话')
+    name = models.CharField(max_length=20, verbose_name=u"姓名")
+    tel = models.CharField(max_length=15, verbose_name=u'电话')
     gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u'性别',
                                               default=settings.MALE)
-    village = models.CharField(max_length=100, verbose_name=u'小区')
-    address = models.CharField(max_length=100, verbose_name=u'地址')
+    village = models.CharField(max_length=200, verbose_name=u'小区')
+    address = models.CharField(max_length=200, verbose_name=u'地址')
     source = models.ForeignKey(Option, verbose_name=u'来源', related_name='customer_source', on_delete=models.PROTECT)
     project = models.ManyToManyField(Option, verbose_name=u'项目', related_name='customer_category', editable=False,
                                      null=True,blank=True)
@@ -44,20 +44,6 @@ class ReportCustomer(models.Model):
         permissions = [
             ('view_report_customer', u'查看'),
             ('add_report_customer', u'添加'),
-            ('update_report_customer', u'更新'),
             ('delete_report_customer', u'删除'),
             ('check_report_customer', u'审核'),
         ]
-
-    # def check_customer(self, user):
-    #     # 审核
-    #     if self.report_status == ReportCustomer.REPEAT_REPORT:
-    #
-    #
-    #     if self.report_status == ReportCustomer.NOT_CHECKED:
-    #         self.check_user = user
-    #         self.report_status = ReportCustomer.CHECKED
-    #         self.check_time = timezone.now()
-    #         self.save()
-    #     # if self.report_status == Customer.CHECKED:
-    #     #     # 撞单

+ 17 - 4
apps/customer/views.py

@@ -3,10 +3,11 @@ from rest_framework.views import APIView
 from django.db.models import Q
 from django.utils import timezone
 from rest_framework.decorators import action
-
+from utils.permission import isLogin, permission_required
 from utils.custom_modelviewset import CustomModelViewSet
 from utils import response_ok, response_error
 from utils.exceptions import CustomError
+from apps.log.models import BizLog
 from apps.option.models import Option
 from apps.option.serializers import OptionComboboxSerializer
 from .models import ReportCustomer
@@ -15,29 +16,39 @@ from .filters import ReportCustomerFilter
 
 
 class ReportCustomerViewSet(CustomModelViewSet):
-    permission_classes = []
+    permission_classes = [isLogin]
     queryset = ReportCustomer.objects.filter()
     serializer_class = ReportCustomerSerializer
 
+    @permission_required('customer.view_report_customer')
     def filter_queryset(self, queryset):
         queryset = queryset.filter()
         f = ReportCustomerFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    @permission_required('customer.add_report_customer')
     def perform_create(self, serializer):
         super(ReportCustomerViewSet, self).perform_create(serializer)
         instance = serializer.instance
         validated_data = serializer.validated_data
+        BizLog.objects.addnew(self.request.user, BizLog.INSERT,
+                              u'添加客户报备[%s],id=%d' % (instance.name, instance.id), validated_data)
 
+    @permission_required('customer.add_report_customer')
     def perform_update(self, serializer):
         super(ReportCustomerViewSet, self).perform_update(serializer)
         instance = serializer.instance
         validated_data = serializer.validated_data
+        BizLog.objects.addnew(self.request.user, BizLog.UPDATE,
+                              u'修改客户报备[%s],id=%d' % (instance.name, instance.id), validated_data)
 
+    @permission_required('customer.delete_report_customer')
     def perform_destroy(self, instance):
+        BizLog.objects.addnew(self.request.user, BizLog.DELETE,
+                              u'删除客户报备[%s],id=%d' % (instance.name, instance.id))
         super(ReportCustomerViewSet, self).perform_destroy(instance)
 
-
+    @permission_required('customer.check_report_customer')
     @action(methods=['post'], detail=False)
     def check(self, request, pk):
         # 审核
@@ -59,6 +70,8 @@ class ReportCustomerViewSet(CustomModelViewSet):
                 instance.report_status = ReportCustomer.CHECKED
                 instance.check_time = timezone.now()
                 instance.save()
+            BizLog.objects.addnew(None, request.user, BizLog.INSERT,
+                                  u'审核客户报备[%s]状态为[%s],id=%d' % (instance.name, report_status, instance.id))
         except CustomError as e:
             return response_error(e.get_error_msg())
         except Exception as e:
@@ -66,7 +79,7 @@ class ReportCustomerViewSet(CustomModelViewSet):
         return response_ok('审核完成!')
 
 class ReportCustomerDictView(APIView):
-    permission_classes = []
+    permission_classes = [isLogin]
 
     def get(self, request):
         scouce = Option.objects.filter(type=Option.CUSTOMER_SOURCE , enable=True)

+ 0 - 0
apps/new_customer/customer/views.py


+ 1 - 1
apps/option/models.py

@@ -36,7 +36,7 @@ class Option(models.Model):
         permissions = [
             ('browse_option', u'查看'),
             ('add_option', u'添加'),
-            ('delete_option', u'删除'),
+            # ('delete_option', u'删除'),
         ]
 
     @staticmethod

+ 6 - 0
apps/option/views.py

@@ -5,8 +5,11 @@ from .serializers import OptionSerializer
 from .filters import OptionFilter
 from apps.log.models import BizLog
 from utils import response_ok
+from utils.permission import isLogin, permission_required
 
 class DictView(APIView):
+    permission_classes = [isLogin, ]
+
     def get(self, request):
         ret = {
             'types':Option.TYPE_CHOICES,
@@ -17,11 +20,13 @@ class OptionViewSet(CustomModelViewSet):
     queryset = Option.objects.filter()
     serializer_class = OptionSerializer
 
+    @permission_required('option.browse_option')
     def filter_queryset(self, queryset):
         queryset = queryset.filter()
         f = OptionFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    @permission_required('option.add_option')
     def perform_create(self, serializer):
         super(OptionViewSet,self).perform_create(serializer)
         instance = serializer.instance
@@ -29,6 +34,7 @@ class OptionViewSet(CustomModelViewSet):
         BizLog.objects.addnew(self.request.user, BizLog.INSERT,
                               u'添加自定义项[%s],id=%d' % (instance.name, instance.id), validated_data)
 
+    @permission_required('option.add_option')
     def perform_update(self, serializer):
         super(OptionViewSet,self).perform_update(serializer)
         instance = serializer.instance

+ 7 - 6
uis/views/agent/index.html

@@ -58,7 +58,7 @@
                 <div class="layui-col-md12">
                     <div class="LAY-btns" style="margin-bottom: 10px;">
                         <div style="float: left">
-                            <button class="layui-btn" id="agent_add"><i
+                            <button class="layui-btn" id="agent_add" data-permission="agent.add_agent"><i
                                     class="layui-icon layui-icon-add-circle"></i>添加
                             </button>
                         </div>
@@ -79,11 +79,12 @@
 
                     <script type="text/html" id="agent-operate-bar">
                         <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="agent_edit"
+                            <a class="layui-btn layui-btn-xs" lay-event="agent_edit" data-permission="agent.add_agent"
                             >修改</a>
                         </div>
                         <div class="layui-btn-group">
                             <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="agent_del"
+                               data-permission="agent.delete_agent"
                             >删除</a>
                         </div>
                     </script>
@@ -132,9 +133,9 @@
                         url: '/agent/agent/' + data.id + '/'
                         , type: 'delete'
                         , done: function (res) {
-                             if(res.code === 0){
+                            if (res.code === 0) {
                                 layer.msg('删除成功!', {icon: 1})
-                             }
+                            }
                             table.reload('agent_datagrid', {});
                         }
                     });
@@ -149,7 +150,7 @@
                     btn: ['保存', '取消'],
                     yes: function (index, dom) {
                         layui.onSubmitChild = function (res) {
-                            if(res.code === 0){
+                            if (res.code === 0) {
                                 layer.msg('修改成功!', {icon: 1})
                             }
                             layer.close(index);
@@ -182,7 +183,7 @@
                 btn: ['保存', '取消'],
                 yes: function (index, dom) {
                     layui.onSubmitChild = function (res) {
-                        if(res.code === 0){
+                        if (res.code === 0) {
                             layer.msg('添加成功!', {icon: 1})
                         }
                         layer.close(index);

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

@@ -157,8 +157,8 @@
             , cols: [[
                 {field: 'name', title: '姓名', width: 110}
                 , {field: 'gender_text', title: "性别", width: 70}
-                , {field: 'tel', title: '电话', width: 150}
-                , {field: 'village', title: '小区', width: 200}
+                , {field: 'tel', title: '电话', width: 120}
+                , {field: 'village', title: '小区', width: 150}
                 , {field: 'address', title: '地址', width: 200}
                 , {field: 'source_text', title: '来源', width: 100}
                 , {field: 'notes', title: '备注', width: 200}

+ 20 - 12
uis/views/employee/edit.html

@@ -60,11 +60,19 @@
                             </div>
 
                             <div class="layui-col-lg6">
-                                <label class="layui-form-label">性别:</label>
+                                <label class="layui-form-label"><font color='red' size="4">*</font>性别:</label>
                                 <div class="layui-input-block">
-                                    <select name="gender" lay-verify="required">
-                                        <option value="2">男</option>
-                                        <option value="1">女</option>
+                                    <input type="radio" name="gender" value="2" title="男" checked>
+                                    <input type="radio" name="gender" value="1" title="女">
+                                </div>
+                            </div>
+
+                            <div class="layui-col-lg6">
+                                <label class="layui-form-label">在职状态:</label>
+                                <div class="layui-input-block">
+                                    <select name="status" style="width: 40px;">
+                                        <option value="2" selected>在职</option>
+                                        <option value="3">离职</option>
                                     </select>
                                 </div>
                             </div>
@@ -147,7 +155,7 @@
             }
         }
         form.render(null, 'component-form-element');
-        var stores= []
+        var stores = []
         admin.req({
             url: '/agent/dict/',
             done: function (res) {
@@ -168,14 +176,14 @@
         });
         var onAgentChange = function (value) {
             var store_node = $('#id_stores');
-                for (var i in stores) {
-                    var pid = stores[i].id;
-                    var stores_value = stores[i].name;
-                    if(pid == value) {
-                        store_node.append("<option value='" + pid + "'>" + stores_value + "</option>");
-                    }
+            for (var i in stores) {
+                var pid = stores[i].id;
+                var stores_value = stores[i].name;
+                if (pid == value) {
+                    store_node.append("<option value='" + pid + "'>" + stores_value + "</option>");
                 }
-                form.render();
+            }
+            form.render();
         }
         formSelects.config('selectGroup', {
             beforeSuccess: function (eid, url, searchVal, result) {

+ 34 - 5
uis/views/employee/index.html

@@ -27,7 +27,8 @@
                 <div class="layui-col-md12">
                     <div class="LAY-btns" style="margin-bottom: 10px;">
                         <div style="float:left; margin-right: 5px; margin-top: 5px;">
-                            <button class="layui-btn" id="btn_add"><i class="layui-icon layui-icon-add-circle"></i>添加
+                            <button class="layui-btn" id="btn_add" data-permission="account.add_user">
+                                <i class="layui-icon layui-icon-add-circle"></i>添加
                             </button>
                         </div>
 
@@ -57,17 +58,21 @@
                     <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
 
                     <script type="text/html" id="datagrid-operate-bar">
+                        <div class="layui-btn-group">
+                            <a class="layui-btn layui-btn-xs" lay-event="join"
+                               data-permission="account.check_user">入职</a>
+                        </div>
                         <div class="layui-btn-group">
                             <a class="layui-btn layui-btn-xs" lay-event="edit"
-                               data-permission="employee.add_employee">修改</a>
+                               data-permission="account.add_user">修改</a>
                         </div>
                         <div class="layui-btn-group">
                             <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete"
-                               data-permission="employee.delete_employee">删除</a>
+                               data-permission="account.delete_user">删除</a>
                         </div>
                         <div class="layui-btn-group">
                             <a class="layui-btn layui-btn-xs layui-btn-warm"
-                               data-permission="employee.add_employee"
+                               data-permission="account.manager_store"
                                lay-event="manage_range">管理门店</a>
                         </div>
                     </script>
@@ -101,7 +106,10 @@
                 , {field: 'enable_text', title: '是否在用', width: 100}
                 , {field: 'groups', title: '权限组', width: 200}
                 , {field: 'manager_barnchs', title: '管理门店', width: 200}
-                , {width: 200, align: 'center', fixed: 'right', toolbar: '#datagrid-operate-bar'}
+                , {field: 'status_text', title: '状态', width: 80}
+                , {field: 'check_user_text', title: '入职审核人', width: 120}
+                , {field: 'date_joined', title: '入职时间', width: 180}
+                , {width: 250, align: 'center', fixed: 'right', toolbar: '#datagrid-operate-bar'}
             ]]
             , page: true
             , height: 'full-108'
@@ -137,6 +145,10 @@
                     content: 'edit.html?id=' + data.id
                 });
             } else if (obj.event === 'delete') {
+                if (data.status > 1) {
+                    layer.msg('当前状态禁止删除!')
+                    return false
+                }
                 layer.confirm('确定要删除吗?', function (index) {
                     layer.close(index);
                     layui.admin.req({
@@ -149,6 +161,23 @@
                     });
                 });
             }
+            else if (obj.event === 'join') {
+                if (data.status > 1) {
+                    layer.msg('该员工已入职!')
+                    return false
+                }
+                layer.confirm('确定要入职该员工吗?', function (index) {
+                    layer.close(index);
+                    layui.admin.req({
+                        notice: true
+                        , url: '/account/employee/' + data.id + '/join/'
+                        , type: 'post'
+                        , done: function (res) {
+                            table.reload('datagrid', {});
+                        }
+                    });
+                });
+            }
             else if (obj.event === 'manage_range') {
                 layer.open({
                     type: 2,

+ 2 - 2
uis/views/index.html

@@ -91,12 +91,12 @@
                             <cite>潜客作业</cite>
                         </a>
                         <dl class="layui-nav-child">
-                            <dd data-name="nav" data-permission="option.browse_option">
+                            <dd data-name="nav" data-permission="customer.view_report_customer">
                                 <a lay-href="new_customer/index.html">客户报备</a>
                             </dd>
                         </dl>
                         <dl class="layui-nav-child">
-                            <dd data-name="nav" data-permission="option.browse_option">
+                            <dd data-name="nav" data-permission="customer.check_report_customer">
                                 <a lay-href="report_check/index.html">报备审核</a>
                             </dd>
                         </dl>

+ 1 - 0
uis/views/new_customer/edit.html

@@ -131,6 +131,7 @@
                     var name = data_source[i].name;
                     source_node.append("<option value='" + pid + "'>" + name + "</option>");
                 }
+
                 var data_project = res.data.project;
                 let tempData = [];
                 if(data_project && data_project.length > 0){

+ 3 - 2
uis/views/option/index.html

@@ -58,7 +58,8 @@
                 <div class="layui-col-md12">
                     <div class="LAY-btns" style="margin-bottom: 10px;">
                         <div style="float:left; margin-right: 5px; margin-top: 5px;">
-                            <button class="layui-btn" id="btn_add"><i class="layui-icon layui-icon-add-circle"></i>添加
+                            <button class="layui-btn" id="btn_add" data-permission="option.add_option">
+                                <i class="layui-icon layui-icon-add-circle"></i>添加
                             </button>
                         </div>
 
@@ -91,7 +92,7 @@
 
                     <script type="text/html" id="datagrid-operate-bar">
                         <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
+                            <a class="layui-btn layui-btn-xs" lay-event="edit" data-permission="option.add_option">修改</a>
                         </div>
                     </script>
                 </div>

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

@@ -103,7 +103,7 @@
 
         table.render({
             elem: '#report_check_datagrid'
-            , url: '/api/report_check.json'
+            , url: '/customer/report_customer/?report_status=0'
             , cols: [[
                 {type:'checkbox'}
                 , {field: 'name', title: '姓名', width: 200}

+ 12 - 10
uis/views/store/index.html

@@ -59,7 +59,7 @@
                     <div class="LAY-btns" style="margin-bottom: 10px;">
                         <div style="float: left">
                             <button class="layui-btn" id="store_add"><i
-                                    class="layui-icon layui-icon-add-circle"></i>添加
+                                    class="layui-icon layui-icon-add-circle" data-permission="agent.add_store"></i>添加
                             </button>
                         </div>
                         <form class="layui-form" lay-filter="query-form-element1">
@@ -79,15 +79,15 @@
 
                     <script type="text/html" id="store-operate-bar">
                         <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="store_check"
+                            <a class="layui-btn layui-btn-xs" lay-event="store_check" data-permission="agent.check_store"
                             >审核</a>
                         </div>
                         <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="store_edit"
+                            <a class="layui-btn layui-btn-xs" lay-event="store_edit" data-permission="agent.add_store"
                             >修改</a>
                         </div>
                         <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="store_del"
+                            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="store_del" data-permission="agent.delete_store"
                             >删除</a>
                         </div>
                     </script>
@@ -114,14 +114,16 @@
             , cols: [[
                 {field: 'name', title: '名称', width: 150}
                 , {field: 'address', title: '地址', width: 200}
-                , {field: 'create_user_text', title: '添加人', width: 160}
-                , {field: 'create_time', title: '添加时间', width: 180}
+                , {field: 'create_user_text', title: '添加人', width: 140}
+                , {field: 'create_time', title: '添加时间', width: 160}
                 , {field: 'end_date', title: '到期日期', width: 150}
-                , {field: 'notes', title: '备注', width: 200}
-                , {field: 'status_text', title: '状态', width: 150}
-                , {field: 'check_user_text', title: '审核人', width: 150}
+                , {field: 'agent_text', title: '代理商', width: 120}
+                , {field: 'enable_text', title: '是否在用', width: 100}
+                , {field: 'status_text', title: '状态', width: 100}
+                , {field: 'check_user_text', title: '审核人', width: 120}
                 , {field: 'check_time', title: '审核时间', width: 180}
-                , {width: 180, align: 'center', fixed: 'right', toolbar: '#store-operate-bar'}
+                , {field: 'notes', title: '备注', width: 200}
+                , {width: 170, align: 'center', fixed: 'right', toolbar: '#store-operate-bar'}
             ]]
             , page: true
             , height: 'full-108'