wushaodong il y a 4 ans
Parent
commit
b8e148b223

+ 1 - 0
apps/admin/config/__init__.py

@@ -0,0 +1 @@
+# coding=utf-8

+ 13 - 0
apps/admin/config/urls.py

@@ -0,0 +1,13 @@
+# coding=utf-8
+
+from rest_framework.routers import SimpleRouter
+
+from .views import *
+
+urlpatterns = [
+
+]
+
+router = SimpleRouter()
+router.register(r'', ConfigViewSet)
+urlpatterns += router.urls

+ 35 - 0
apps/admin/config/views.py

@@ -0,0 +1,35 @@
+# coding=utf-8
+import json
+from django.db import transaction
+
+from utils.permission import IsAdministratorUser
+from apps.tenant.config.serializers import ConfigSerializer
+from utils.custom_modelviewset import CustomModelViewSet
+from apps.tenant.config.models import Config
+from apps.tenant.config.filters import ConfigFilter
+from apps.log.models import BizLog
+from utils import response_ok, response_error
+
+
+class ConfigViewSet(CustomModelViewSet):
+    permission_classes = [IsAdministratorUser, ]
+    queryset = Config.objects.filter()
+    serializer_class = ConfigSerializer
+
+    def filter_queryset(self, queryset):
+        queryset = queryset.filter()
+        f = ConfigFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+    def create(self, request, *args, **kwargs):
+        data = json.loads(request.POST.get('data'))
+        with transaction.atomic():
+            for item in data:
+                config = Config.objects.filter(property=item['key']).first()
+                if config:
+                    config.value = item['value']
+                    config.save()
+                else:
+                    Config.objects.create(property=item['key'], value=item['value'])
+            BizLog.objects.addnew(None, request.user, BizLog.INSERT, u'修改系统设置', data)
+        return response_ok()

+ 1 - 0
apps/admin/urls.py

@@ -13,4 +13,5 @@ urlpatterns = [
     url(r'^wechattp/', include('apps.admin.wechattp.urls')),
 
     url(r'^tenant/', include('apps.admin.tenant.urls')),
+    url(r'^config/', include('apps.admin.config.urls')),
 ]

+ 1 - 1
apps/tenant/config/filters.py

@@ -9,4 +9,4 @@ class ConfigFilter(django_filters.FilterSet):
 
     class Meta:
         model = Config
-        fields = '__all__'
+        fields = '__all__'

+ 2 - 50
apps/tenant/config/models.py

@@ -2,17 +2,12 @@
 
 from django.db import models
 from django.conf import settings
-from PIL import Image
-from apps.tenant.models import Tenant
-from utils.file_operation import UploadFile, DeleteFile
 
 config_file = 'config/'
 class Config(models.Model):
-    KEY_REPAIRS_PERSON = 'repairs_person'  #报修人员
-    KEY_SEND_ORDER_TYPE = 'send_order_type'  #派单方式
-    WXAPP_HOME_IMG = 'wxapp_home_img'  #小程序首页图片
+    KEY_RENEW_YEAR_1 = 'renew_year_1'  #续费年限1
+    KEY_RENEW_AMOUNT_1 = 'renew_amount_1'  #续费金额1
 
-    tenant = models.ForeignKey(Tenant, verbose_name=u'租户', on_delete=models.PROTECT, editable=False)
     property = models.CharField(max_length=100, verbose_name=u'属性')
     value = models.TextField(verbose_name=u'值')
 
@@ -23,46 +18,3 @@ class Config(models.Model):
             'property',
         )
         default_permissions = ()
-        permissions = [
-            ('browse_config', u'查看'),
-            ('set_config', u'设置'),
-        ]
-
-    @staticmethod
-    def getRepairsPerson(tenant_id):
-        try:
-            row = Config.objects.get(property=Config.KEY_REPAIRS_PERSON, tenant_id=tenant_id)
-            return row.value
-        except:
-            return ''
-
-    @staticmethod
-    def getSendOrderType(tenant_id):
-        try:
-            row = Config.objects.get(property=Config.KEY_SEND_ORDER_TYPE, tenant_id=tenant_id)
-            return row.value
-        except:
-            return ''
-
-    @staticmethod
-    def add_img(employee, property, file):
-        path = '{0}{1}/{2}/'.format(config_file,property,employee.user.id)
-        filename = UploadFile(file, path)
-        fullname = "%s/%s" % (settings.MEDIA_ROOT, filename)
-
-        try:
-            img = Image.open(fullname)
-            x, y = img.size
-            if x > 1440:
-                img = img.resize((1440, int((y / x) * 1440)), Image.ANTIALIAS)
-                img.save(fullname)
-        except:
-            pass
-
-        return filename
-
-    @staticmethod
-    def del_images(instance):
-        picture = instance.value
-        instance.delete()
-        DeleteFile(picture)

+ 0 - 6
apps/tenant/config/serializers.py

@@ -5,12 +5,6 @@ from apps.tenant.config.models import Config
 from django.conf import settings
 
 class ConfigSerializer(serializers.ModelSerializer):
-    url = serializers.SerializerMethodField()
-
-    def get_url(self, obj):
-        if obj.property in [Config.WXAPP_HOME_IMG]:
-            return '%s%s' % (settings.MEDIA_URL, obj.value)
-        return ''
 
     class Meta:
         model = Config

+ 4 - 12
apps/tenant/config/views.py

@@ -2,7 +2,7 @@
 import json
 from django.db import transaction
 
-from utils.permission import IsTenantUser, permission_required
+from utils.permission import IsAdministratorUser, permission_required
 from .serializers import ConfigSerializer
 from utils.custom_modelviewset import CustomModelViewSet
 from .models import Config
@@ -13,20 +13,18 @@ from apps.log.models import BizLog
 from utils import response_ok, response_error
 
 class ConfigViewSet(CustomModelViewSet):
-    permission_classes = [IsTenantUser, ]
+    permission_classes = [IsAdministratorUser, ]
     queryset = Config.objects.filter()
     serializer_class = ConfigSerializer
 
-    @permission_required('config.browse_config')
     def filter_queryset(self, queryset):
-        queryset = queryset.filter(tenant=self.request.user.employee.tenant)
+        queryset = queryset.filter()
         f = ConfigFilter(self.request.GET, queryset=queryset)
         return f.qs
 
     @permission_required('config.set_config')
     def create(self, request):
         data = json.loads(request.POST.get('data'))
-        wxapp_home_img = request.FILES.get('wxapp_home_img')
         keys = ['repairs_person', 'send_order_type']
         with transaction.atomic():
             for item in data:
@@ -39,12 +37,6 @@ class ConfigViewSet(CustomModelViewSet):
                 else:
                     Config.objects.create(tenant=self.request.user.employee.tenant, property=item['key'],
                                                    value=item['value'])
-            if wxapp_home_img:
-                old_config =  Config.objects.filter(property='wxapp_home_img', tenant=self.request.user.employee.tenant).first()
-                if old_config:
-                    old_config.del_images(old_config)
-                picture = Config.add_img(request.user.employee, 'wxapp_home_img', wxapp_home_img)
-                Config.objects.create(tenant=self.request.user.employee.tenant, property='wxapp_home_img',
-                                      value=picture)
+
             tenant_log(self.request.user.employee, BizLog.INSERT, u'修改系统设置', data)
         return response_ok()

+ 1 - 1
apps/tenant/urls.py

@@ -14,7 +14,7 @@ urlpatterns = [
     url(r'^permission/', include('apps.tenant.permissions.urls')),
     url(r'^employee/', include('apps.tenant.employee.urls')),
     url(r'^option/', include('apps.tenant.option.urls')),
-    url(r'^config/', include('apps.tenant.config.urls')),
+    # url(r'^config/', include('apps.tenant.config.urls')),
     url(r'^building/', include('apps.tenant.building.urls')),
     url(r'^repair_order/', include('apps.tenant.repair_order.urls')),
     url(r'^inspection_order/', include('apps.tenant.inspection_order.urls')),

+ 120 - 0
uis/zzlyadmin/config/index.html

@@ -0,0 +1,120 @@
+<!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-form-item">
+                    <div class="layui-inline">
+                        <label class="layui-form-label">续费年限:</label>
+                        <div class="layui-input-inline">
+                            <input type="text" name="renew_year_1" lay-verify="required"  class="layui-input"
+                                   placeholder="整数"/>
+                        </div>
+                        <div class="layui-form-mid ">年</div>
+                    </div>
+                    <div class="layui-inline">
+                        <label class="layui-form-label">金额:</label>
+                        <div class="layui-input-inline">
+                            <input type="text" name="renew_amount_1" lay-verify="required"  class="layui-input"
+                                   placeholder="整数"/>
+                        </div>
+                        <div class="layui-form-mid ">元</div>
+                    </div>
+
+                    <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>
+            </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
+            , form = layui.form;
+        form.render(null, 'component-form-element');
+
+        admin.req({
+            url: '/admin/config/',
+            done: function (res) {
+                var data = res.data;
+                var edit_data = {};
+                for (var i in data) {
+                    edit_data[data[i].property] = data[i].value
+                }
+                form.val("component-form-element", edit_data);
+                form.render();
+            }
+        });
+
+        var form_data = [];
+        form.on('submit(component-form-element)', function (data) {
+            var save_data = [];
+            if (data.field['renew_amount_1']) {
+                save_data.push({key: 'renew_amount_1', value: data.field['renew_amount_1']})
+            } else {
+                save_data.push({key: 'renew_amount_1', value: '0'})
+            }
+            if (data.field['renew_year_1']) {
+                save_data.push({key: 'renew_year_1', value: data.field['renew_year_1']})
+            } else {
+                save_data.push({key: 'renew_year_1', value: '0'})
+            }
+
+            admin.req({
+                url: '/admin/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>

+ 3 - 0
uis/zzlyadmin/index.html

@@ -74,6 +74,9 @@
                         <dd data-name="nav">
                             <a lay-href="employee/index.html">用户管理</a>
                         </dd>
+                        <dd data-name="nav" data-permission="config.browse_config">
+                            <a lay-href="config/index.html">基础设置</a>
+                        </dd>
                     </li>
                 </ul>
             </div>