Kaynağa Gözat

员工、报修人

wushaodong 4 yıl önce
ebeveyn
işleme
de12c7101f

+ 4 - 4
apps/account/models.py

@@ -12,8 +12,8 @@ class UserManager(BaseUserManager):
     def create_administrator(self, username, password=None, **extra_fields):
         return self.create_user(User.SUPPER, username, password, **extra_fields)
 
-    def create_tenant_admin(self, username, password=None, **extra_fields):
-        return self.create_user(User.ADMIN, username, password, **extra_fields)
+    def create_tenant_user(self,type, username, password=None, **extra_fields):
+        return self.create_user(type, username, password, **extra_fields)
 
     def create_superuser_tenant(self, username, password=None, **extra_fields):
         u = self.create_administrator(username, password, **extra_fields)
@@ -106,8 +106,8 @@ class User(AbstractBaseUser, PermissionsMixin):
             return True
         return False
 
-    def is_tenant(self):
-        if self.type == self.ADMIN:
+    def is_admin(self):
+        if self.type == self.ADMIN or self.type == self.SUPPER:
             return True
         return False
 

+ 1 - 1
apps/tenant/employee/models.py

@@ -32,7 +32,7 @@ class Employee(models.Model):
     gender = models.PositiveSmallIntegerField(choices=settings.GENDER_CHOICES, verbose_name=u'性别', default=settings.MALE)
     status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'状态',default=ENABLE)
     user = models.OneToOneField(settings.AUTH_USER_MODEL, editable=False, related_name='employee',
-                                on_delete=models.PROTECT, verbose_name=u'账号', null=True)
+                                on_delete=models.PROTECT, verbose_name=u'添加人', null=True)
     position = models.CharField(max_length=20, verbose_name=u'职位', null=True)
     create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
                                     editable=False, related_name='create_user',null=True)

+ 10 - 27
apps/tenant/employee/serializers.py

@@ -29,37 +29,19 @@ class EmployeeSerializer(serializers.ModelSerializer):
         user = User.objects.filter(username=username).first()
         if not user:
             # 创建user实例
-            is_active = 1 if self.initial_data['status'] != '4' else 0
-            user = User.objects.create_tenant_admin(username, password, is_active=is_active)
+            user = User.objects.create_tenant_user(validated_data['type'], username, password)
 
         validated_data['user'] = user
-        validated_data['create_user'] = self.context['request'].user
         validated_data['tenant'] = self.context['request'].user.employee.tenant
-        validated_data['type'] = Employee.EMPLOYEE
+
         try:
             instance = super(EmployeeSerializer, self).create(validated_data)
+            return instance
         except Exception as e:
             if e.args[0] == 1062:
                 raise CustomError(u'该手机号已被游客或者其他员工使用,请检查!')
 
-        groups = self.context['request'].data.get('groups', None)
-        if groups:
-            groups = json.loads(groups)
-        else:
-            groups = []
-        for group in groups:
-            instance.user.groups.add(group)
-        return instance
-
     def update(self, instance, validated_data):
-        instance.user.groups.clear()
-        groups = self.context['request'].data.get('groups', None)
-        if groups:
-            groups = json.loads(groups)
-        else:
-            groups = []
-        for group in groups:
-            instance.user.groups.add(group)
         if instance.tenant != self.context['request'].user.employee.tenant:
             raise CustomError(u'禁止跨租户操作!')
         username = self.initial_data['tel']
@@ -68,15 +50,16 @@ class EmployeeSerializer(serializers.ModelSerializer):
                 user = {
                     'username': username,
                     'password': self.initial_data['password'],
-                    'is_active': 1 if self.initial_data['status'] != '4' else 0,
-                    'type':2,
+                    'is_active': 1 if self.initial_data['status'] == 1 else 0,
+                    'type': self.initial_data['type'],
                 }
                 instance.user.update_item(user)
             else:
-                is_active = 1 if self.initial_data['status'] != '4' else 0
-                user = User.objects.create_tenant_admin(username,
-                                                  self.initial_data['password'],
-                                                  is_active=is_active)
+                is_active = 1 if self.initial_data['status'] == 1 else 0
+                user = User.objects.create_tenant_user(validated_data['type'],
+                                                       username,
+                                                       self.initial_data['password'],
+                                                       is_active=is_active)
                 validated_data['user'] = user
         instance = super(EmployeeSerializer, self).update(instance, validated_data)
         return instance

+ 5 - 9
apps/tenant/employee/views.py

@@ -19,12 +19,9 @@ class DictView(APIView):
     permission_classes = [IsTenantUser, ]
 
     def get(self, request):
-        tenant = request.user.employee.tenant
         ret = {
             'status': Employee.STATUS_CHOICES,  # 职工状态
-            'position': OptionSerializer(Option.objects.filter(delete=False,type=Option.JOB_TYPE, enable=True, tenant=tenant), many=True).data,
-            'area': AreaSerializer(Area.objects.filter(delete=False, enable=True, tenant=tenant), many=True).data,
-            'department': AreaDepartmentSerializer(Department.objects.filter(delete=False, enable=True, area__tenant=tenant), many=True).data,
+            'emp_types': Employee.TYPE_CHOICES,  # 职工角色
         }
         return response_ok(ret)
 
@@ -33,9 +30,8 @@ class VisitorView(CustomModelViewSet):
     queryset = Employee.objects.filter()
     serializer_class = EmployeeSerializer
 
-    @permission_required('employee.browse_employee')
     def filter_queryset(self, queryset):
-        queryset = queryset.filter(tenant=self.request.user.employee.tenant)
+        queryset = queryset.filter(tenant=self.request.user.employee.tenant, type=Employee.REPAIR)
         f = EmployeeFilter(self.request.GET, queryset=queryset)
         return f.qs
 
@@ -44,10 +40,10 @@ class VisitorView(CustomModelViewSet):
         forbid_baoxiu = request.POST.get('forbid_baoxiu')
         instance = Employee.objects.filter(id=pk).first()
         if instance:
-            instance.forbid_baoxiu = forbid_baoxiu and True or False
+            instance.status = 2 if forbid_baoxiu == '1' else 1
             instance.save()
         else:
-            return response_error(u'游客信息有误,请刷新重试。')
+            return response_error(u'报修人信息有误,请刷新重试。')
         return response_ok()
 
 class EmployeeViewSet(CustomModelViewSet):
@@ -57,7 +53,7 @@ class EmployeeViewSet(CustomModelViewSet):
 
     @permission_required('employee.browse_employee')
     def filter_queryset(self, queryset):
-        queryset = queryset.filter(tenant=self.request.user.employee.tenant)
+        queryset = queryset.filter(tenant=self.request.user.employee.tenant, type__lt=Employee.REPAIR)
         f = EmployeeFilter(self.request.GET, queryset=queryset)
         return f.qs
 

+ 1 - 1
apps/tenant/repair_order/views.py

@@ -25,7 +25,7 @@ class DictView(APIView):
             'status': settings.REPAIR_STATUS_CHOICES,
         }
         # 租户下面的账号,只查询账号所在区域的部门数据
-        if request.user.is_tenant() and request.user.employee.department:
+        if request.user.is_admin() and request.user.employee.department:
             ret['area'] = [{
                 'id': request.user.employee.department.area.id,
                 'name': request.user.employee.department.area.name,

+ 1 - 1
apps/tenant/serializers.py

@@ -24,7 +24,7 @@ class TenantJWTSerializer(JSONWebTokenSerializer):
             user = authenticate(**credentials)
 
             if user:
-                if not user.is_tenant():
+                if not user.is_admin():
                     msg = u'非工作账号,禁止登录'
                     raise serializers.ValidationError(msg)
 

+ 0 - 111
uis/tenant/area/area_edit.html

@@ -1,111 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>区域信息</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-row layui-col-space15">
-        <div class="layui-col-md6">
-            <div class="layui-card">
-
-                <div class="layui-card-body">
-                    <form class="layui-form" action="" lay-filter="component-form-element">
-                        <div class="layui-row layui-col-space10 layui-form-item">
-
-                            <div class="layui-col-lg6">
-                                <label class="layui-form-label"><font color='red' size="4">*</font>名称:</label>
-                                <div class="layui-input-block">
-                                    <input type="text" name="name" lay-verify="required" placeholder="请输入名称"
-                                           autocomplete="off" class="layui-input">
-                                </div>
-                            </div>
-                            <div>
-                                <label class="layui-form-label">排序:</label>
-                                <div class="layui-input-block">
-                                    <input type="text" name="sort" placeholder="请输入排序" lay-verify="numberGez"
-                                           autocomplete="off" class="layui-input">
-                                </div>
-                            </div>
-                            <div class="layui-col-lg6">
-                                <label class="layui-form-label">是否在用:</label>
-                                <div class="layui-input-block">
-                                    <input type="checkbox" name="enable" lay-skin="switch" lay-text="是|否" checked=""
-                                           value="1">
-                                </div>
-                            </div>
-                            <div class="layui-col-lg6">
-                                <label class="layui-form-label">备注:</label>
-                                <div class="layui-input-block">
-                                    <input type="text" name="notes" placeholder="请输入备注" autocomplete="off"
-                                           class="layui-input">
-                                </div>
-                            </div>
-                            <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element"
-                                    style="display: none">保存
-                            </button>
-                        </div>
-                    </form>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script src="../../layuiadmin/layui/layui.js"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index',
-        formSelects: 'formSelects-v4'
-    }).use(['index', 'form', 'utils'], function () {
-        var $ = layui.$
-            , admin = layui.admin
-            , form = layui.form;
-        var id = layui.view.getParameterByName('id');
-
-        if (id) {
-            var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
-            form.val("component-form-element", editdata);
-        }
-        form.on('submit(component-form-element)', function (data) {
-
-            //layer.msg(JSON.stringify(data.field));
-            if (id) {
-                var url = '/tenant/area/area/' + id + '/';
-                var type = 'put';
-            } else {
-                url = '/tenant/area/area/';
-                type = 'post'
-            }
-            admin.req({
-                url: url
-                , data: data.field
-                , type: type
-                , done: function (res) {
-                    parent.layui.onSubmitChild(res.data);
-                }
-            });
-
-            return false;
-        });
-
-        parent.layui.submitChild = function () {
-            $("#id_save").click();
-        };
-    });
-</script>
-</body>
-</html>

+ 0 - 134
uis/tenant/area/department_edit.html

@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>区域部门信息</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-row layui-col-space15">
-        <div class="layui-card">
-
-            <div class="layui-card-body" pad15>
-                <form class="layui-form" action="" lay-filter="component-form-element">
-                    <div class="layui-row layui-col-space10 layui-form-item">
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>区域:</label>
-                            <div class="layui-input-block">
-                                <select id="id_area" name="area" lay-verify="required">
-                                </select>
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>名称:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="name" lay-verify="required" placeholder="请输入名称"
-                                       autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label">排序:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="sort" placeholder="请输入排序" lay-verify="numberGez"
-                                       autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label">在用:</label>
-                            <div class="layui-input-block">
-                                <input type="checkbox" name="enable" lay-skin="switch" lay-text="是|否" checked=""
-                                       value="1">
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label">备注:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="notes" placeholder="请输入备注" autocomplete="off"
-                                       class="layui-input">
-                            </div>
-                        </div>
-
-                        <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element"
-                                style="display: none">保存
-                        </button>
-                    </div>
-                </form>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script src="../../layuiadmin/layui/layui.js"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index',
-        formSelects: 'formSelects-v4'
-    }).use(['index', 'form', 'utils',], function () {
-        var $ = layui.$
-            , admin = layui.admin
-            , form = layui.form;
-        var id = layui.view.getParameterByName('id');
-
-        admin.req({
-            url: '/tenant/area/dict/',
-            done: function (res) {
-                var area = res.data.area;
-                var area_node = $('#id_area');
-                for (var i in area) {
-                    var pid = area[i].id;
-                    var value = area[i].name;
-                    area_node.append("<option value='" + pid + "'>" + value + "</option>");
-                }
-                form.render();
-                loadData();
-            }
-        });
-        var loadData = function () {
-            if (id) {
-                var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
-                form.val("component-form-element", editdata);
-            }
-        };
-        form.render(null, 'component-form-element');
-
-        form.on('submit(component-form-element)', function (data) {
-
-            if (id) {
-                var url = '/tenant/area/department/' + id + '/';
-                var type = 'put';
-            } else {
-                url = '/tenant/area/department/';
-                type = 'post'
-            }
-
-            admin.req({
-                url: url
-                , data: data.field
-                , type: type
-                , done: function (res) {
-                    parent.layui.onSubmitChild(res.data);
-                }
-            });
-
-            return false;
-        });
-
-        parent.layui.submitChild = function () {
-            $("#id_save").click();
-        };
-    });
-</script>
-</body>
-</html>

+ 0 - 279
uis/tenant/area/index.html

@@ -1,279 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>区域信息</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <style type="text/css">
-        .seach_items {
-            float: right;
-            margin-left: 10px;
-        }
-    </style>
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-            <div class="layui-row layui-col-space15">
-                <div class="layui-col-md5">
-                    <div class="LAY-btns" style="margin-bottom: 10px;">
-                        <div class="layui-col-xs2">
-                            <button class="layui-btn" id="area_add" data-permission="area.add_area"><i
-                                    class="layui-icon layui-icon-add-circle"></i>添加
-                            </button>
-                        </div>
-                        <form class="layui-form" lay-filter="query-form-element1">
-                            <div class="seach_items">
-                                <button class="layui-btn" lay-submit lay-filter="query-form-element1"><i
-                                        class="layui-icon layui-icon-search"></i>查询
-                                </button>
-                            </div>
-                            <div class="seach_items">
-                                <input type="text" name="name" autocomplete="off" class="layui-input" placeholder="名称"/>
-                            </div>
-                        </form>
-                        <div style="clear: both;"></div>
-                    </div>
-                    <table class="layui-hide" id="area_datagrid" lay-filter="area-operate"></table>
-
-                    <script type="text/html" id="area-operate-bar">
-                        <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="area_edit"
-                               data-permission="area.add_area">修改</a>
-                            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="area_del"
-                               data-permission="area.delete_area">删除</a>
-                        </div>
-                    </script>
-                </div>
-
-                <div class="layui-col-md7">
-                    <div class="LAY-btns" style="margin-bottom: 10px;">
-                        <div class="layui-col-xs2">
-                            <button class="layui-btn" id="department_add" data-permission="area.add_area"><i
-                                    class="layui-icon layui-icon-add-circle"></i>添加
-                            </button>
-                        </div>
-
-                        <form class="layui-form" lay-filter="query-form-element2">
-                            <div class="seach_items">
-                                <button class="layui-btn" lay-submit lay-filter="query-form-element2"><i
-                                        class="layui-icon layui-icon-search"></i>查询
-                                </button>
-                            </div>
-                            <div class="seach_items">
-                                <input type="text" name="area_name" autocomplete="off" class="layui-input"
-                                       placeholder="区域名称"/>
-                            </div>
-                            <div class="seach_items">
-                                <input type="text" name="name" autocomplete="off" class="layui-input"
-                                       placeholder="部门名称"/>
-                            </div>
-                        </form>
-                        <div style="clear: both;"></div>
-                    </div>
-
-                    <table class="layui-hide" id="department_datagrid" lay-filter="department-operate"></table>
-
-                    <script type="text/html" id="department-operate-bar">
-                        <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="department_edit"
-                               data-permission="area.add_area">修改</a>
-                            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="department_del"
-                               data-permission="area.delete_area">删除</a>
-                        </div>
-                    </script>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="../../layuiadmin/layui/layui.js?t=1"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index' //主入口模块
-    }).use(['index', 'table', 'form'], function () {
-        var $ = layui.$;
-        var table = layui.table
-            , form = layui.form
-            , admin = layui.admin;
-        //品牌
-        table.render({
-            elem: '#area_datagrid'
-            , url: '/tenant/area/area/'
-            , cols: [[
-                {field: 'name', title: '名称', width: 200}
-                , {field: 'sort', title: '排序', width: 80}
-                , {field: 'enable_text', title: '在用', width: 80}
-                , {field: 'notes', title: '备注', minWwidth: 80}
-                , {width: 110, align: 'center', fixed: 'right', toolbar: '#area-operate-bar'}
-            ]]
-            , page: true
-            , height: 'full-108'
-            , done: function () {
-                layui.index.removeNoPermButtons()
-            }
-        });
-        //车系
-        table.render({
-            elem: '#department_datagrid'
-            , url: '/tenant/area/department/'
-            , cols: [[
-                {field: 'area_name', title: '区域名称', width: 100}
-                , {field: 'name', title: '部门名称', width: 200}
-                , {field: 'sort', title: '排序', width: 80}
-                , {field: 'enable_text', title: '在用', width: 100}
-                , {field: 'notes', title: '备注'}
-                , {width: 110, align: 'center', fixed: 'right', toolbar: '#department-operate-bar'}
-            ]]
-            , page: true
-            , height: 'full-108'
-            , done: function () {
-                layui.index.removeNoPermButtons()
-            }
-        });
-
-        //监听品牌工具条
-        table.on('tool(area-operate)', function (obj) {
-            var data = obj.data;
-            if (obj.event === 'area_del') {
-                layer.confirm('确定要删除吗?', function (index) {
-                    layer.close(index);
-                    admin.req({
-                        url: '/tenant/area/area/' + data.id + '/'
-                        , type: 'delete'
-                        , done: function (res) {
-                            table.reload('area_datagrid', {});
-                            //obj.del();
-                        }
-                    });
-                });
-            } else if (obj.event === 'area_edit') {
-                table.editdata = data;
-                layer.open({
-                    type: 2,
-                    title: '修改',
-                    shadeClose: false,
-                    area: ['450px', '350px'],
-                    btn: ['保存', '取消'],
-                    yes: function (index, dom) {
-                        layui.onSubmitChild = function (data) {
-                            layer.close(index);
-                            table.reload('area_datagrid', {});
-                            table.reload('department_datagrid', {});
-                        };
-                        layui.submitChild();
-                    },
-                    btn2: function (index, layero) {
-                        layer.close(index);//关闭当前按钮
-                    },
-                    content: 'area_edit.html?id=' + data.id
-                });
-            }
-        });
-        //监听车系工具条
-        table.on('tool(department-operate)', function (obj) {
-            var data = obj.data;
-            if (obj.event === 'department_del') {
-                layer.confirm('确定要删除吗?', function (index) {
-                    admin.req({
-                        url: '/tenant/department/' + data.id + '/'
-                        , type: 'delete'
-                        , done: function (res) {
-                            table.reload('department_datagrid', {});
-                            layer.close(index);
-                        }
-                    });
-                });
-            } else if (obj.event === 'department_edit') {
-                table.editdata = data;
-                layer.open({
-                    type: 2,
-                    title: '修改',
-                    area: ['500px', '500px'],
-                    btn: ['保存', '取消'],
-                    yes: function (index, dom) {
-                        layui.onSubmitChild = function (data) {
-                            layer.close(index);
-                            table.reload('area_datagrid', {});
-                            table.reload('department_datagrid', {});
-                        };
-                        layui.submitChild();
-                    },
-                    btn2: function (index, layero) {
-                        layer.close(index);//关闭当前按钮
-                    },
-                    content: 'department_edit.html?id=' + data.id
-                });
-            }
-        });
-        form.on('submit(query-form-element1)', function (data) {
-            table.reload('area_datagrid', {
-                where: data.field
-                , page: {curr: 1}
-            });
-            layer.closeAll();
-            return false
-        });
-        form.on('submit(query-form-element2)', function (data) {
-            table.reload('department_datagrid', {
-                where: data.field
-                , page: {curr: 1}
-            });
-            layer.closeAll();
-            return false
-        });
-        $('#area_add').on('click', function () {
-            layer.open({
-                type: 2,
-                title: '添加',
-                area: ['450px', '350px'],
-                btn: ['保存', '取消'],
-                yes: function (index, dom) {
-                    layui.onSubmitChild = function (data) {
-                        layer.close(index);
-                        table.reload('area_datagrid', {});
-                        table.reload('department_datagrid', {});
-                    };
-                    layui.submitChild();
-                },
-                btn2: function (index, layero) {
-                    layer.close(index);//关闭当前按钮
-                },
-                content: 'area_edit.html'
-            });
-        });
-        $('#department_add').on('click', function () {
-            layer.open({
-                type: 2,
-                title: '添加',
-                area: ['500px', '500px'],
-                btn: ['保存', '取消'],
-                yes: function (index, dom) {
-                    layui.onSubmitChild = function (data) {
-                        layer.close(index);
-                        table.reload('area_datagrid', {});
-                        table.reload('department_datagrid', {});
-                    };
-                    layui.submitChild();
-                },
-                btn2: function (index, layero) {
-                    layer.close(index);//关闭当前按钮
-                },
-                content: 'department_edit.html'
-            });
-        });
-    });
-
-</script>
-</body>
-</html>

+ 0 - 127
uis/tenant/building/edit.html

@@ -1,127 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>建筑信息</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-row layui-col-space15">
-        <div class="layui-card">
-
-            <div class="layui-card-body" pad15>
-                <form class="layui-form" action="" lay-filter="component-form-element">
-                    <div class="layui-row layui-col-space10 layui-form-item">
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>区域:</label>
-                            <div class="layui-input-block">
-                                <select id="id_area" name="area" lay-verify="required">
-                                </select>
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>楼宇:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="building" lay-verify="required" placeholder="请输入楼宇名称"
-                                       autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>楼层:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="floor" placeholder="请输入楼层名称" lay-verify="required"
-                                       autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-                        <div>
-                            <label class="layui-form-label"><font color='red' size="4">*</font>地点:</label>
-                            <div class="layui-input-block">
-                                <input type="text" name="location" placeholder="请输入地点" lay-verify="required"
-                                       autocomplete="off" class="layui-input">
-                            </div>
-                        </div>
-
-                        <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element"
-                                style="display: none">保存
-                        </button>
-                    </div>
-                </form>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script src="../../layuiadmin/layui/layui.js"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index',
-        formSelects: 'formSelects-v4'
-    }).use(['index', 'form', 'utils',], function () {
-        var $ = layui.$
-            , admin = layui.admin
-            , form = layui.form;
-        var id = layui.view.getParameterByName('id');
-
-        admin.req({
-            url: '/tenant/area/dict/',
-            done: function (res) {
-                var area = res.data.area;
-                var area_node = $('#id_area');
-                for (var i in area) {
-                    var pid = area[i].id;
-                    var value = area[i].name;
-                    area_node.append("<option value='" + pid + "'>" + value + "</option>");
-                }
-                form.render();
-                loadData();
-            }
-        });
-        var loadData = function () {
-            if (id) {
-                var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
-                form.val("component-form-element", editdata);
-            }
-        };
-        form.render(null, 'component-form-element');
-
-        form.on('submit(component-form-element)', function (data) {
-
-            if (id) {
-                var url = '/tenant/building/' + id + '/';
-                var type = 'put';
-            } else {
-                url = '/tenant/building/';
-                type = 'post'
-            }
-
-            admin.req({
-                url: url
-                , data: data.field
-                , type: type
-                , done: function (res) {
-                    parent.layui.onSubmitChild(res.data);
-                }
-            });
-
-            return false;
-        });
-
-        parent.layui.submitChild = function () {
-            $("#id_save").click();
-        };
-    });
-</script>
-</body>
-</html>

+ 0 - 231
uis/tenant/building/index.html

@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>建筑信息</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <style type="text/css">
-        .seach_items {
-            float: right;
-            margin-left: 10px;
-        }
-    </style>
-    <style type="text/css">
-        .LAY-btns .layui-nav {
-            padding-left: 0;
-            padding-right: 10px;
-            top: -4px;
-            margin: 0 10px;
-            border: 0;
-            background-color: #009688;
-        }
-
-        .LAY-btns .layui-nav .layui-nav-item {
-            line-height: 40px;
-        }
-
-        .LAY-btns .layui-nav .layui-nav-child {
-            top: 34px;
-        }
-
-        .LAY-btns .layui-nav .layui-nav-bar {
-            display: none;
-        }
-
-        .LAY-btns .layui-nav .layui-nav-child dd.layui-this a {
-            color: #333;
-            background-color: #fff;
-        }
-
-        .LAY-btns .layui-nav .layui-nav-child dd.layui-this a:hover {
-            background-color: #f2f2f2;
-            color: #000;
-        }
-    </style>
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-            <div class="layui-row layui-col-space15">
-                <div class="layui-col-md12">
-                    <div class="LAY-btns" style="margin-bottom: 10px;">
-                        <div class="layui-col-xs2">
-                            <button class="layui-btn" id="building_add" data-permission="building.add_building"><i
-                                    class="layui-icon layui-icon-add-circle"></i>添加
-                            </button>
-                            <button class="layui-nav" data-permission="building.add_building">
-                                <div class="layui-nav-item">
-                                    <a href="javascript:;" style="color:#fff;">导入</a>
-                                    <dl class="layui-nav-child"> <!-- 二级菜单 -->
-                                        <dd><a href="#" id="btn_import">执行导入</a></dd>
-                                        <dd><a href="#" id="btn_download">下载模板</a></dd>
-                                    </dl>
-                                </div>
-                            </button>
-                        </div>
-                        <form class="layui-form" lay-filter="query-form-element1">
-                            <div class="seach_items">
-                                <button class="layui-btn" lay-submit lay-filter="query-form-element1"><i
-                                        class="layui-icon layui-icon-search"></i>查询
-                                </button>
-                            </div>
-                            <div class="seach_items">
-                                <input type="text" name="building" autocomplete="off" class="layui-input"
-                                       placeholder="楼宇名称"/>
-                            </div>
-                        </form>
-                        <div style="clear: both;"></div>
-                    </div>
-                    <table class="layui-hide" id="building_datagrid" lay-filter="building-operate"></table>
-
-                    <script type="text/html" id="building-operate-bar">
-                        <div class="layui-btn-group">
-                            <a class="layui-btn layui-btn-xs" lay-event="view_records"
-                               data-permission="building.add_building">维保记录</a>
-                            <a class="layui-btn layui-btn-xs" lay-event="building_edit"
-                               data-permission="building.add_building">修改</a>
-                            <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="building_del"
-                               data-permission="building.delete_building">删除</a>
-                        </div>
-                    </script>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="../../layuiadmin/layui/layui.js?t=1"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index' //主入口模块
-    }).use(['index', 'table', 'form', 'upload'], function () {
-        var $ = layui.$;
-        var table = layui.table
-            , form = layui.form
-            , upload = layui.upload
-            , admin = layui.admin;
-
-        table.render({
-            elem: '#building_datagrid'
-            , url: '/tenant/building/'
-            , cols: [[
-                {field: 'area_name', title: '区域名称', width: 200}
-                , {field: 'building', title: '楼宇', width: 150}
-                , {field: 'floor', title: '楼层', width: 80}
-                , {field: 'location', title: '地点', width: 200}
-                , {width: 200, align: 'center', fixed: 'right', toolbar: '#building-operate-bar'}
-            ]]
-            , page: true
-            , height: 'full-108'
-            , done: function () {
-                layui.index.removeNoPermButtons()
-            }
-        });
-        $('#btn_download').on('click', function () {
-            layui.view.download("/static/xls/建筑信息导入模板.xlsx");
-        });
-        upload.render({
-            elem: '#btn_import'
-            , url: '/tenant/building/import/'
-            , accept: 'file'
-            , acceptMime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
-            , exts: 'xlsx'
-            , field: 'excel_file'
-            , done: function (res) {
-                if (res.code == 0) {
-                    table.reload('building_datagrid', {});
-                } else {
-                    layer.msg(res.msg);
-                }
-            }
-            , error: function () {
-                layer.msg('导入失败');
-            }
-        });
-        //监听工具条
-        table.on('tool(building-operate)', function (obj) {
-            var data = obj.data;
-            table.editdata = data;
-            if (obj.event === 'building_del') {
-                layer.confirm('确定要删除吗?', function (index) {
-                    layer.close(index);
-                    admin.req({
-                        url: '/tenant/building/' + data.id + '/'
-                        , type: 'delete'
-                        , done: function (res) {
-                            table.reload('building_datagrid', {});
-                        }
-                    });
-                });
-            } else if (obj.event === 'building_edit') {
-                layer.open({
-                    type: 2,
-                    title: '修改',
-                    shadeClose: false,
-                    area: ['450px', '350px'],
-                    btn: ['保存', '取消'],
-                    yes: function (index, dom) {
-                        layui.onSubmitChild = function (data) {
-                            layer.close(index);
-                            table.reload('building_datagrid', {});
-                        };
-                        layui.submitChild();
-                    },
-                    btn2: function (index, layero) {
-                        layer.close(index);//关闭当前按钮
-                    },
-                    content: 'edit.html?id=' + data.id
-                });
-            } else if (obj.event === 'view_records') {
-                layer.open({
-                    type: 2,
-                    title: "维保记录",
-                    shadeClose: false,
-                    area: ['90%', '75%'],
-                    content: 'repair_records.html?building='+data.id
-                })
-            }
-        });
-
-        form.on('submit(query-form-element1)', function (data) {
-            table.reload('building_datagrid', {
-                where: data.field
-                , page: {curr: 1}
-            });
-            layer.closeAll();
-            return false
-        });
-
-        $('#building_add').on('click', function () {
-            layer.open({
-                type: 2,
-                title: '添加',
-                area: ['450px', '350px'],
-                btn: ['保存', '取消'],
-                yes: function (index, dom) {
-                    layui.onSubmitChild = function (data) {
-                        layer.close(index);
-                        table.reload('building_datagrid', {});
-                    };
-                    layui.submitChild();
-                },
-                btn2: function (index, layero) {
-                    layer.close(index);//关闭当前按钮
-                },
-                content: 'edit.html'
-            });
-        });
-    });
-
-</script>
-</body>
-</html>

+ 0 - 61
uis/tenant/building/repair_records.html

@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>维保记录</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-            <div class="layui-row layui-col-space15">
-                <div class="layui-col-md12">
-                    <table class="layui-hide" id="datagrid" lay-filter="datagrid-operate"></table>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<script src="../../layuiadmin/layui/layui.js?t=1"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index' //主入口模块
-    }).use(['index', 'table', ], function () {
-        var $ = layui.$
-            , table = layui.table;
-        var building = layui.view.getParameterByName('building');
-
-        table.render({
-            elem: '#datagrid'
-            , url: '/tenant/repair_order/?building=' + building
-            , type: 'get'
-            , cols: [[
-                {field: 'no', title: '报修单号', width: 180}
-                , {field: 'building_text', title: '地点', width: 250}
-                , {field: 'fault_des', title: '问题描述', MinWidth: 200}
-                , {field: 'repair_type', title: '报修类型', width: 100}
-                , {field: 'name', title: '报修人', width: 100}
-                , {field: 'tel', title: '报修电话', width: 120}
-                , {field: 'create_time', title: '报修时间', width: 180}
-                , {field: 'status_text', title: '状态', width: 150}
-            ]]
-            , page: true
-            , height: 'full-104'
-        });
-
-    });
-</script>
-</body>
-</html>
-

+ 0 - 182
uis/tenant/config/index.html

@@ -1,182 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <title>系统设置</title>
-    <meta name="renderer" content="webkit">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport"
-          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <style>
-        img {
-            width: 40%;
-            height: 30%;
-        }
-    </style>
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-            <form class="layui-form" action="" lay-filter="component-form-element">
-                <div class="layui-row layui-col-space10 layui-form-item">
-                    <div>
-                        <label class="layui-form-label">报修人员:</label>
-                        <input type="checkbox" name="repairs_person" lay-skin="switch" lay-text="注册用户|所有用户" value="1">
-                        <label style="margin-left: 20px"><font color='red' style="font-size: small;">默认任何人都可以报修,开启后,只有注册的用户客户报修。</font></label>
-                    </div>
-                    <div>
-                        <label class="layui-form-label">允许抢单:</label>
-                        <input type="checkbox" name="send_order_type" lay-skin="switch" lay-text="是|否" value="1">
-                        <label style="margin-left: 20px"><font color='red' style="font-size: small;">默认不允许抢单,需要管理人员给维修师傅派单。开启后,维修师傅可在小程序上抢单。</font></label>
-                    </div>
-                    <div>
-                        <label class="layui-form-label"><font color='red' size="4">*</font>小程序首页图片:</label>
-                        <div class="layui-input-block">
-                            <button type="button" class="layui-btn-sm" id="wxapp_home_img">上传图片</button>
-                            <br><br>
-                            <img class="layui-upload-img" id="wxapp_home_img_demo" style="max-height: 250px;">
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <div class="layui-input-block">
-                            <button class="layui-btn" lay-submit lay-filter="component-form-element"
-                                    data-permission="config.set_config">保存
-                            </button>
-                            <button class="layui-btn" type="button" id="upload_image" style="display: none"></button>
-                        </div>
-                    </div>
-                </div>
-            </form>
-        </div>
-    </div>
-</div>
-
-
-<script src="../../layuiadmin/layui/layui.js"></script>
-<script>
-    layui.config({
-        base: '../../../layuiadmin/' //静态资源所在路径
-    }).extend({
-        index: 'lib/index' //主入口模块
-    }).use(['index', 'form', 'utils', 'upload'], function () {
-        var $ = layui.$
-            , admin = layui.admin
-            , upload = layui.upload
-            , form = layui.form;
-        form.render(null, 'component-form-element');
-
-        admin.req({
-            url: '/tenant/config/',
-            done: function (res) {
-                var data = res.data;
-                var edit_data = {};
-                for (var i in data) {
-                    if (data[i].property === 'repairs_person') {
-                        if (data[i].value === '1') {
-                            edit_data['repairs_person'] = data[i].value;
-                        } else {
-                            edit_data['repairs_person'] = '';
-                        }
-                    } else if (data[i].property === 'send_order_type') {
-                        if (data[i].value === '1') {
-                            edit_data['send_order_type'] = data[i].value;
-                        } else {
-                            edit_data['send_order_type'] = '';
-                        }
-                    } else if (data[i].property === 'wxapp_home_img') {
-                        $('#wxapp_home_img_demo').attr('src', data[i].url);
-                    }
-                }
-                form.val("component-form-element", edit_data);
-                form.render();
-            }
-        });
-
-        var form_data = [];
-        upload.render({
-            elem: '#wxapp_home_img',
-            url: '/tenant/config/',
-            auto: false,
-            field: 'wxapp_home_img',
-            bindAction: '#upload_image',
-            choose: function (obj) {
-                obj.preview(
-                    function (index, file, result) {
-                        $('#wxapp_home_img_demo ').attr('src', result);
-                    }
-                );
-            },
-            data: {
-                data: function () {
-                    return JSON.stringify(form_data);
-                },
-            },
-            done: function (res) {
-                if (res.code != 0) {
-                    layer.msg(res.msg);
-                } else {
-                    layer.open({
-                        type: 1
-                        , content: '<div style="padding: 20px 100px;">保存成功</div>'
-                        , btn: '关闭'
-                        , btnAlign: 'c' //按钮居中
-                        , shade: 0 //不显示遮罩
-                        , yes: function () {
-                            layer.closeAll();
-                            //admin.exit();
-                        }
-                    });
-                }
-            },
-            error: function () {
-                layer.msg('保存失败');
-            }
-        });
-        form.on('submit(component-form-element)', function (data) {
-            var save_data = [];
-            if (data.field['repairs_person']) {
-                save_data.push({key: 'repairs_person', value: data.field['repairs_person']})
-            } else {
-                save_data.push({key: 'repairs_person', value: '0'})
-            }
-            if (data.field['send_order_type']) {
-                save_data.push({key: 'send_order_type', value: data.field['send_order_type']})
-            } else {
-                save_data.push({key: 'send_order_type', value: '0'})
-            }
-            if (data.field.wxapp_home_img) {
-                form_data = save_data;
-                setTimeout($('#upload_image').click(), 30000)
-
-            } else {
-                admin.req({
-                    url: '/tenant/config/'
-                    , data: {data: JSON.stringify(save_data)}
-                    , type: 'post'
-                    , done: function (res) {
-                        layer.open({
-                            type: 1
-                            , content: '<div style="padding: 20px 100px;">保存成功</div>'
-                            , btn: '关闭'
-                            , btnAlign: 'c' //按钮居中
-                            , shade: 0 //不显示遮罩
-                            , yes: function () {
-                                layer.closeAll();
-                                //admin.exit();
-                            }
-                        });
-                    }
-                });
-            }
-
-            return false;
-        });
-
-    });
-</script>
-</body>
-</html>

+ 12 - 92
uis/tenant/employee/edit.html

@@ -9,7 +9,6 @@
           content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
     <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
     <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-    <link rel="stylesheet" type="text/css" href="../../layuiadmin/style/formSelects-v4.css"/>
     <style>
         #group_selecter dl {
             max-height: 200px;
@@ -61,43 +60,25 @@
                             </div>
 
                             <div class="layui-col-lg6">
-                                <label class="layui-form-label"><font color='red' size="4">*</font>职位:</label>
-                                <div class="layui-input-block">
-                                    <select id="id_position" lay-verify="required" name="position" style="width: 40px;">
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="layui-col-lg6">
-                                <label class="layui-form-label"><font color='red' size="4">*</font>区域:</label>
-                                <div class="layui-input-block">
-                                    <select id="id_area" lay-verify="required" name="area" lay-filter="areaChange"
-                                            style="width: 40px;">
-                                        <option value="">选择区域</option>
-                                    </select>
-                                </div>
-                            </div>
-                            <div class="layui-col-lg6">
-                                <label class="layui-form-label"><font color='red' size="4">*</font>部门:</label>
+                                <label class="layui-form-label"><font color='red' size="4">*</font>角色:</label>
                                 <div class="layui-input-block">
-                                    <select id="id_department" lay-verify="required" name="department"
-                                            style="width: 40px;">
+                                    <select name="type" lay-verify="required" style="width: 40px;">
+                                        <option value=""></option>
+                                        <option value='2'>管理者</option>
+                                        <option value='3'>检修人</option>
+                                        <option value='1'>平台管理员</option>
                                     </select>
                                 </div>
                             </div>
 
                             <div class="layui-col-lg6">
-                                <label class="layui-form-label">权限组:</label>
-                                <div class="layui-input-block" id="group_selecter">
-                                    <select name="groups" xm-select="selectGroup"></select>
-                                </div>
-                            </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">
-                                    <input type="checkbox" name="forbid_baoxiu" lay-skin="switch" lay-text="是|否"
-                                           value="0">
+                                    <input type="text" name="position"
+                                           placeholder="请输入职位" autocomplete="off" class="layui-input">
                                 </div>
                             </div>
+
                         </div>
                         <button class="layui-btn" id="id_user_save" lay-submit lay-filter="component-form-element"
                                 style="display: none">保存
@@ -117,19 +98,15 @@
         base: '../../../layuiadmin/' //静态资源所在路径
     }).extend({
         index: 'lib/index',
-        formSelects: 'formSelects-v4'
-    }).use(['index', 'form', 'utils', 'formSelects',], function () {
+    }).use(['index', 'form', 'utils', ], function () {
         var $ = layui.$
             , admin = layui.admin
-            , form = layui.form
-            , formSelects = layui.formSelects
+            , form = layui.form;
 
         var id = layui.view.getParameterByName('id');
-        var departments = [], department_id = '', area_id = ''
         admin.req({
             url: '/tenant/employee/dict/',
             done: function (res) {
-                departments = res.data.department;
                 var status = res.data.status;
                 var status_node = $('#id_status');
                 for (var i in status) {
@@ -138,21 +115,6 @@
                     status_node.append("<option value='" + pid + "'>" + status_value + "</option>");
                 }
 
-                var position = res.data.position;
-                var position_node = $('#id_position');
-                for (var i in position) {
-                    var pid = position[i].id;
-                    var position_value = position[i].name;
-                    position_node.append("<option value='" + pid + "'>" + position_value + "</option>");
-                }
-
-                var area = res.data.area;
-                var area_node = $('#id_area');
-                for (var i in area) {
-                    var pid = area[i].id;
-                    var area_value = area[i].name;
-                    area_node.append("<option value='" + pid + "'>" + area_value + "</option>");
-                }
                 form.render();
                 loadData();
             }
@@ -162,57 +124,15 @@
             if (id) {
                 var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
                 form.val("component-form-element", editdata);
-                department_id = editdata.department;
-                area_id = editdata.area;
-                areaChange(editdata.area)
             }
             form.render(null, 'component-form-element');
             form.val("component-form-element", {
                 'password': '1111'
             });
         };
-        var areaChange = function (value) {
-            var department_option = '';
-            for (var i = 0; i < departments.length; i++) {
-                if (departments[i].area == parseInt(value)) {
-                    if (departments[i].id == department_id)
-                        department_option += "<option value=" + departments[i].id + " selected>" + departments[i].name + "</option>";
-                    else
-                        department_option += "<option value=" + departments[i].id + ">" + departments[i].name + "</option>";
-                }
-            }
-            $("#id_department").append(department_option);
-            form.render();
-        };
-
-        form.on('select(areaChange)', function (data) {
-            $("#id_department").html('');
-            if (!data.value) return;
-            areaChange(data.value)
-        });
 
-        formSelects.config('selectGroup', {
-            beforeSuccess: function (eid, url, searchVal, result) {
-                if (id) {
-                    var groupIds = parent.layui.table.editdata.group_ids;
-                    for (var n in result.data) {
-                        var item = result.data[n];
-                        if (groupIds.indexOf(parseInt(item.value)) > -1)
-                            item.selected = 'selected';
-                    }
-                }
-                return result;
-            }
-        });
-        formSelects.data('selectGroup', 'server', {
-            url: '/tenant/permission/dict/'
-        });
         form.on('submit(component-form-element)', function (data) {
             //layer.msg(JSON.stringify(data.field));
-            var submitData = data.field;
-            var groups = formSelects.value('selectGroup', 'val');
-            submitData.groups = JSON.stringify(groups);
-            data.field.type = 1
             if (id) {
                 var url = '/tenant/employee/' + id + '/';
                 var type = 'put';

+ 6 - 7
uis/tenant/employee/index.html

@@ -90,7 +90,7 @@
                     <script type="text/html" id="datagrid-operate-bar">
                         <div class="layui-btn-group">
                             <a class="layui-btn layui-btn-xs" lay-event="edit"
-                            data-permission="employee.add_employee">修改</a>
+                               data-permission="employee.add_employee">修改</a>
                         </div>
                         <!--div class="layui-btn-group">
                             <a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete"
@@ -116,17 +116,16 @@
             , form = layui.form;
         table.render({
             elem: '#datagrid'
-            , url: '/tenant/employee/?type=1'
+            , url: '/tenant/employee/'
             , cols: [[
                 {field: 'name', title: '姓名', width: 200}
                 , {field: 'tel', title: '电话', width: 200}
                 , {field: 'username', title: '账号', width: 200}
                 , {field: 'status_text', title: '状态', width: 100}
                 , {field: 'position_text', title: '职位', width: 100}
-                , {field: 'area_text', title: '区域', width: 100}
-                , {field: 'department_text', title: '部门', width: 100}
-                , {field: 'forbid_baoxiu_text', title: '是否禁用报修', width: 120}
-                , {field: 'groups', title: '权限组', width: 200}
+                , {field: 'type_text', title: '角色', width: 200}
+                , {field: 'tenant', title: '企业名称', width: 200}
+                , {field: 'baoxiu_count', title: '报修次数', width: 100}
                 , {width: 120, align: 'center', fixed: 'right', toolbar: '#datagrid-operate-bar'}
             ]]
             , page: true
@@ -152,7 +151,7 @@
                     type: 2,
                     title: '修改',
                     shadeClose: false,
-                    area: ['700px', '700px'],
+                    area: ['600px', '600px'],
                     btn: ['保存', '取消'],
                     yes: function (index, dom) {
                         layui.submitChild();

+ 10 - 18
uis/tenant/index.html

@@ -65,34 +65,20 @@
                     <li data-name="set" class="layui-nav-item">
                         <a href="javascript:;" lay-tips="基础信息" lay-direction="2">
                             <i class="layui-icon layui-icon-set"></i>
-                            <cite>系统设置</cite>
+                            <cite>基础设置</cite>
                         </a>
                         <dl class="layui-nav-child">
-                            <dd data-name="nav" data-permission="area.browse_area">
-                                <a lay-href="area/index.html">区域信息</a>
-                            </dd>
-                            <dd data-name="nav" data-permission="building.browse_building">
-                                <a lay-href="building/index.html">建筑信息</a>
-                            </dd>
+
                             <dd data-name="nav" data-permission="building.browse_building">
-                                <a lay-href="equipment/index.html">设备信息</a>
+                                <a lay-href="equipment/index.html">设备管理</a>
                             </dd>
 
                             <dd data-name="nav" data-permission="employee.browse_employee">
-                                <a lay-href="employee/index.html">人员信息</a>
-                            </dd>
-                            <dd data-name="nav" data-permission="employee.browse_employee">
-                                <a lay-href="visitor/index.html">游客信息</a>
+                                <a lay-href="employee/index.html">员工管理</a>
                             </dd>
                             <dd data-name="nav" data-permission="option.browse_option">
                                 <a lay-href="option/index.html">系统选项</a>
                             </dd>
-                            <dd data-name="nav" data-permission="config.browse_config">
-                                <a lay-href="config/index.html">基础设置</a>
-                            </dd>
-                            <dd data-name="nav" data-permission="account.browse_group">
-                                <a lay-href="permissions/index.html">权限管理</a>
-                            </dd>
                         </dl>
                     </li>
                     <li data-name="set" class="layui-nav-item">
@@ -110,6 +96,12 @@
                                 <a lay-href="inspection/index.html">巡检管理</a>
                             </dd>
                         </dl>
+                        <dl class="layui-nav-child">
+                            <dd data-name="nav" data-permission="employee.browse_employee">
+                                <a lay-href="visitor/index.html">报修人信息</a>
+                            </dd>
+                        </dl>
+
                     </li>
                     <li data-name="set" class="layui-nav-item">
                         <a href="javascript:;" lay-tips="通知管理" lay-direction="2">

+ 0 - 151
uis/tenant/permissions/edit.html

@@ -1,151 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>权限组信息</title>
-  <meta name="renderer" content="webkit">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-</head>
-<body>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-            <div class="layui-row layui-col-space15">
-                <div class="layui-col-md12">
-
-            <form class="layui-form" action="" lay-filter="component-form-element">
-              <div class="layui-row layui-col-space10 layui-form-item">
-
-                <div class="layui-col-md12">
-                  <label class="layui-form-label"><font color='red' size="4">*</font>名称:</label>
-                  <div class="layui-input-block">
-                    <input type="text" name="display_name" lay-verify="required" placeholder="请输入权限组名称" autocomplete="off" class="layui-input">
-                  </div>
-                </div>
-                  <div class="layui-col-md12">
-                  <label class="layui-form-label">权限:</label>
-                  <div class="layui-input-block">
-                    <div id="perms">
-
-                    </div>
-                  </div>
-                </div>
-
-                <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element" style="display: none">保存</button>
-
-              </div>
-            </form>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-
-
-  <script src="../../layuiadmin/layui/layui.js"></script>
-  <script>
-  layui.config({
-    base: '../../../layuiadmin/' //静态资源所在路径
-  }).extend({
-    index: 'lib/index' //主入口模块
-  }).use(['index', 'form'], function(){
-    var $ = layui.$
-    ,admin = layui.admin
-    ,element = layui.element
-    ,form = layui.form;
-    var id = layui.view.getParameterByName('id');
-
-    admin.req({
-        url: '/tenant/permission/all/',
-        type: 'get',
-        beforeSend: function () {
-            layer.load();
-        },
-        done: function (res) {
-            var curPermissions = [];
-            var editdata = null;
-            if (id) {
-                editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
-                curPermissions = editdata.permissions;
-            }
-            var data = res.data;
-            var html = '';
-            for (var key1 in data){
-              html += "<div class='layui-colla-item'>\n" +
-                    "<input type='checkbox' title='"+key1+"' lay-filter='clickkey1' lay-skin='primary'>\n" +
-                    "          <div class='layui-colla-content layui-show' style='padding-top: 10px'>\n";
-              for(var key2 in data[key1]){
-                  html += "<input type='checkbox' title='"+key2+"' lay-filter='clickkey2' lay-skin='primary'>\n" +
-                      "          <div class='layui-colla-content layui-show' style='padding-top: 5px'>\n<div>\n";
-                  var item = data[key1][key2];
-                  for(var m in item){
-                      var p = item[m];
-                      var checked = '';
-                      for(var key3 in curPermissions){
-                          if(curPermissions[key3]['id'] === p.id){
-                              checked = 'checked';
-                          }
-                      }
-                      html += "<input type='checkbox' name='permission' value='"+p.id+"' title='"+p.name+"' "+checked+" lay-skin='primary'>";
-                  }
-                  html += "</div></div>"
-              }
-              html += "</div></div>"
-            }
-            $('#perms').after(html);
-            if (editdata) {
-                form.val("component-form-element", editdata);
-            }
-            form.render(null, 'component-form-element');
-            layer.closeAll('loading');
-        }
-    });
-    form.on('checkbox(clickkey1)', function (data) {
-         $(data.elem).parent().children().find(':checkbox').prop('checked', data.elem.checked);
-         form.render();
-    });
-    form.on('checkbox(clickkey2)', function (data) {
-        $(data.elem).next().next().find(':checkbox').prop('checked', data.elem.checked);
-        form.render();
-    });
-
-    form.on('submit(component-form-element)', function(data){
-
-      //layer.msg(JSON.stringify(data.field));
-        var submitData = {display_name:data.field.display_name};
-        var permissions = [];
-        $("input:checkbox[name='permission']:checked").each(function() {
-          permissions.push(parseInt($(this).val()));
-          submitData.permissions = JSON.stringify(permissions)
-        });
-        submitData.name = submitData.display_name;
-        if (id){
-            var url =  '/tenant/permission/' + id + '/';
-            var type = 'put';
-        }else{
-            url =  '/tenant/permission/';
-            type = 'post'
-        }
-     admin.req({
-        url: url
-        ,data: submitData
-        ,type: type
-        ,done: function(res){
-            parent.layui.onSubmitChild(res.data);
-        }
-    });
-
-      return false;
-    });
-
-    parent.layui.submitChild = function () {
-      $("#id_save").click();
-    };
-  });
-  </script>
-</body>
-</html>

+ 0 - 126
uis/tenant/permissions/index.html

@@ -1,126 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-  <meta charset="utf-8">
-  <title>权限设置</title>
-  <meta name="renderer" content="webkit">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-</head>
-<body>
-
-  <div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body" pad15>
-        <div class="layui-row layui-col-space15">
-          <div class="layui-col-md12">
-
-            <div class="LAY-btns" style="margin-bottom: 10px;">
-              <button class="layui-btn layui-btn-sm" id="btn_add" data-permission="account.add_group"><i class="layui-icon layui-icon-add-circle"></i>添加</button>
-            </div>
-
-            <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="edit" data-permission="account.add_group">修改</a>
-              <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" data-permission="account.delete_group">删除</a>
-              </div>
-            </script>
-          </div>
-        </div>
-        </div>
-    </div>
-  </div>
-
-  <script src="../../layuiadmin/layui/layui.js?t=1"></script>
-  <script>
-  layui.config({
-    base: '../../../layuiadmin/' //静态资源所在路径
-  }).extend({
-    index: 'lib/index' //主入口模块
-  }).use(['index', 'table'], function(){
-    var $ = layui.$;
-    var table = layui.table;
-
-    table.render({
-      elem: '#datagrid'
-      ,url: '/tenant/permission/'
-      ,type:'get'
-      ,cols: [[
-        {field:'display_name', title:'名称', width:130}
-        ,{field:'employees', title:'人员'}
-        ,{width:100, align:'left', fixed: 'right', toolbar: '#datagrid-operate-bar'}
-      ]]
-      ,page: true
-      ,height: 'full-104'
-      ,done: function () {
-        layui.index.removeNoPermButtons();
-      }
-    });
-
-    //监听工具条
-    table.on('tool(datagrid-operate)', function(obj){
-      var data = obj.data;
-        if(obj.event === 'edit'){
-        table.editdata = data;
-
-        layer.open({
-          type: 2,
-          title: '修改',
-          shadeClose: false,
-          area: ['90%', '90%'],
-          btn: ['保存', '取消'],
-          yes: function(index, dom){
-             layui.onSubmitChild = function (data) {
-              layer.close(index);
-              table.reload('datagrid',{});
-            };
-            layui.submitChild();
-          },
-          btn2: function(index, layero){
-            layer.close(index);//关闭当前按钮
-          },
-          content: 'edit.html?id='+data.id
-        });
-      }else if(obj.event === 'del') {
-            layer.confirm('确定要删除吗?', function (index) {
-              layer.close(index);
-                layui.admin.req({
-                    url: '/tenant/permission/'+data.id+'/'
-                    ,type: 'delete'
-                    , done: function (res) {
-                        table.reload('datagrid', {});
-                    }
-                });
-            });
-        }
-    });
-
-    $('#btn_add').on('click', function () {
-      layer.open({
-        type: 2,
-        title: '添加',
-        shadeClose: false,
-        area: ['90%', '90%'],
-        btn: ['保存', '取消'],
-        yes: function (index, dom) {
-          layui.onSubmitChild = function (data) {
-            layer.close(index);
-            table.reload('datagrid', {});
-          };
-          layui.submitChild();
-        },
-        btn2: function (index, layero) {
-          layer.close(index);//关闭当前按钮
-        },
-        content: 'edit.html'
-      });
-    });
-  });
-  </script>
-</body>
-</html>
-

+ 1 - 1
uis/tenant/visitor/forbid_baoxiu.html

@@ -24,7 +24,7 @@
                         <div class="layui-row layui-col-space10 layui-form-item">
 
                             <div class="layui-col-lg6">
-                                <label class="layui-form-label">是否禁用报修:</label>
+                                <label class="layui-form-label">禁用报修:</label>
                                 <div class="layui-input-block">
                                     <input type="checkbox" name="forbid_baoxiu" lay-skin="switch" lay-text="是|否"
                                            checked="" value="1">

+ 1 - 1
uis/tenant/visitor/index.html

@@ -74,7 +74,7 @@
             , form = layui.form;
         table.render({
             elem: '#datagrid'
-            , url: '/tenant/employee/visitor/?type=2'
+            , url: '/tenant/employee/visitor/'
             , cols: [[
                 {field: 'name', title: '姓名', width: 200}
                 , {field: 'tel', title: '电话', width: 200}

+ 1 - 1
utils/permission.py

@@ -15,7 +15,7 @@ class IsTenantUser(permissions.BasePermission):
     def has_permission(self, request, view):
         if not request.user or not request.user.is_authenticated:
             return False
-        return request.user.is_tenant()
+        return request.user.is_admin()
 
 class IsAdministratorUser(permissions.BasePermission):
     def has_permission(self, request, view):