Browse Source

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

lijiangwei 4 năm trước cách đây
mục cha
commit
2c8ac8f75a

+ 15 - 1
apps/admin/tenant/views.py

@@ -63,7 +63,7 @@ class TenantViewSet(CustomModelViewSet):
                 if user:
                     user.type = User.SUPER
                     user.save()
-                    Employee.objects.filter(user=user).update(tenant=tenant, type=Employee.SUPER)
+                    Employee.objects.filter(user=user).update(tenant=tenant,name=name, type=Employee.SUPER)
                 else:
                     user = Employee.create_super_admin(tenant, name, username, password)
                 option_data1 = {
@@ -123,6 +123,19 @@ class TenantViewSet(CustomModelViewSet):
                     days = Config.getIntValue(Config.FREE_DAYS)
                     instance.end_date = (datetime.datetime.now() + datetime.timedelta(days=int(days))).strftime('%Y-%m-%d')
                     instance.save()
+                else:
+                    notice_data = {
+                        'title': '企业入驻审核通知,请点击查看!',
+                        'content': '''您的企业入驻审核未通过,原因:{}                                                                
+                                        '''.format(reject_reason),
+                        'create_user': request.user,
+                        'tenant': instance,
+                        'type': Notices.MESSAGE,
+                        'range': Notices.ADMIN,
+                        'end_time': (timezone.now() + datetime.timedelta(days=10)).strftime('%Y-%m-%d'),
+                    }
+                    notice = Notices.objects.create(**notice_data)
+                    NoticesToUser.objects.create(notice=notice, user=instance.user)
 
                 if not instance.wxapp_img:
                     applet = WechatApplet.objects.filter(authorizer_appid=settings.WEAPP['appid']).first()
@@ -156,6 +169,7 @@ class MemberRemindViewSet(APIView):
                 'title': '会员到期提醒,请点击查看!',
                 'content': '您的会员还有{0}天到期!请及时续费,以免影响您的正常使用!'.format(diff),
                 'tenant': tenant,
+                'create_user': request.user,
                 'type': Notices.RENEW,
                 'range': Notices.ADMIN,
                 # 'end_time': (timezone.now() + datetime.timedelta(days=int(diff))).strftime('%Y-%m-%d'),

+ 2 - 4
apps/tenant/device/views.py

@@ -4,19 +4,17 @@ from django.db import transaction
 import traceback
 from .serializers import DeviceSerializer
 from utils.exceptions import CustomError
-from utils.permission import IsAdministratorUser
+from utils.permission import IsAdministratorUser,IsTenantUser
 from .filters import DeviceFilter, DeviceModel
 from utils.custom_modelviewset import CustomModelViewSet
 from apps.log.models import BizLog
 from apps.tenant import tenant_log
 from utils import response_ok, response_error
 from .resources import DeviceImporter
-from django.conf import settings
-from apps.WechatApplet.models import WechatApplet
 
 # Create your views here.
 class DeviceViewSet(CustomModelViewSet):
-    permission_classes = [IsAdministratorUser]
+    permission_classes = [IsTenantUser]
     queryset = DeviceModel.objects.all()
     serializer_class = DeviceSerializer
 

+ 1 - 1
apps/tenant/models.py

@@ -29,7 +29,7 @@ class Tenant(models.Model):
     tel = models.CharField(max_length=20, verbose_name=u'联系人电话')
     address = models.CharField(max_length=200, verbose_name=u'地址', blank=True, null=True)
     create_time = models.DateTimeField(verbose_name=u'申请时间', auto_now_add=True, editable=False)
-    end_date = models.DateField(verbose_name=u'到期时间', editable=False, blank=True, null=True)
+    end_date = models.DateField(verbose_name=u'到期时间', blank=True, null=True)
     status = models.PositiveSmallIntegerField(choices=settings.CHECK_STATE_CHOICES, verbose_name=u'审核状态',
                                               default=settings.DEFAULT)
     user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"申请人", on_delete=models.PROTECT,

+ 2 - 1
apps/tenant/operation_help/serializer.py

@@ -24,7 +24,8 @@ class OperationHelpSerializer(serializers.ModelSerializer):
         operation_files = OperationHelpUpfile.objects.filter(tenant=instance.tenant,operation_help__isnull=True)
         for operation_file in operation_files:
             if operation_file.file_path in content:
-                OperationHelpUpfile.objects.filter(id=operation_file.id).update(operation_help=instance)
+                operation_file.operation_help = instance
+                operation_file.save()
             else:
                 operation_file.del_file()
         return instance

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

@@ -82,4 +82,4 @@ class OperationHelpViewSet(CustomModelViewSet):
                 operation_help_file.del_file()
             super(OperationHelpViewSet, self).destroy(self, request, *args, **kwargs)
             tenant_log(self.request.user.employee, BizLog.DELETE, u'删除运维帮助[%s],id=%d' % (instance.title, instance.id))
-        return response_ok()
+        return response_ok()

+ 3 - 3
apps/wxapp/inspection_order/urls.py

@@ -2,11 +2,11 @@
 from django.conf.urls import url
 from rest_framework.routers import SimpleRouter
 
-from .views import InspectionOrderViewSet, InspectionOrderAllView, InspectionOrderDetailView
+from .views import InspectionOrderViewSet, InspectionOrderAllView
 
 urlpatterns = [
-    url(r'^all/$', InspectionOrderAllView.as_view()),  #
-    url(r'^(?P<pk>[0-9]+)/$', InspectionOrderDetailView.as_view()),
+    url(r'^all/$', InspectionOrderAllView.as_view()),
+    # url(r'^(?P<pk>[0-9]+)/$', InspectionOrderDetailView.as_view()),
 ]
 
 router = SimpleRouter()

+ 8 - 1
apps/wxapp/inspection_order/views.py

@@ -9,12 +9,13 @@ from utils.permission import IsTenantUser, isLogin
 from apps.tenant.inspection_order.models import InspectionOrder
 from apps.tenant.inspection_order.filters import InspectionOrderFilter
 from apps.upload.models import Upload
-from .serializers import InspectionOrderSerializer, InspectionOrderListSerializer, InspectionOrderDetailSerializer
+from .serializers import InspectionOrderSerializer, InspectionOrderListSerializer,InspectionOrderDetailSerializer
 from apps.log.models import BizLog
 from apps.tenant import tenant_log
 
 
 class InspectionOrderDetailView(generics.RetrieveAPIView):
+    # 检修工单详情,已不用。
     permission_classes = [isLogin, ]
     queryset = InspectionOrder.objects.filter()
     serializer_class = InspectionOrderDetailSerializer
@@ -50,6 +51,12 @@ class InspectionOrderViewSet(CustomModelViewSet):
         f = InspectionOrderFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    def retrieve(self, request, *args, **kwargs):
+        # 巡检工单详情
+        instance = self.get_object()
+        serializer = InspectionOrderDetailSerializer(instance)
+        return response_ok(serializer.data)
+
     def perform_create(self, serializer):
         super(InspectionOrderViewSet, self).perform_create(serializer)
         instance = serializer.instance

+ 1 - 1
apps/wxapp/repair_order/serializers.py

@@ -30,7 +30,7 @@ class RepairOrderDetailSerializer(serializers.ModelSerializer):
         model = RepairOrder
         fields = (
             'id', 'status_text', 'status', 'no', 'fault_des', 'tel', 'name', 'create_at', 'device_address',
-            'repair_type_name', 'images', 'user_id', 'start')
+            'device_name',  'repair_type_name', 'images', 'user_id', 'start')
 
 
 class RepairOrderListSerializer(serializers.ModelSerializer):

+ 2 - 3
apps/wxapp/repair_order/urls.py

@@ -2,15 +2,14 @@
 from django.conf.urls import url
 from rest_framework.routers import SimpleRouter
 
-from .views import RepairOrderViewSet, DispatchRepairOrderView, RepairOrderAllView, RepairOrderDetailView, \
-    RepairOrderMineView, RepairOrderCountView
+from .views import RepairOrderViewSet, DispatchRepairOrderView, RepairOrderAllView, RepairOrderMineView, RepairOrderCountView
 
 urlpatterns = [
     url(r'^dispatch/$', DispatchRepairOrderView.as_view()),  # 我的派单
     url(r'^all/$', RepairOrderAllView.as_view()),  # 所有派单 通过状态筛选
     url(r'^cout_data/$', RepairOrderCountView.as_view()),  # 所有派单 通过状态筛选
     url(r'^mine/$', RepairOrderMineView.as_view()),  # 我的报修
-    url(r'^(?P<pk>[0-9]+)/$', RepairOrderDetailView.as_view()),  # 工单详情 ok
+    # url(r'^(?P<pk>[0-9]+)/$', RepairOrderDetailView.as_view()),  # 工单详情 ok
 ]
 
 router = SimpleRouter()

+ 8 - 1
apps/wxapp/repair_order/views.py

@@ -22,6 +22,7 @@ from apps.tenant.employee.models import Employee,User
 
 
 class RepairOrderDetailView(generics.RetrieveAPIView):
+    # 工单详情,已不用
     permission_classes = [isLogin, ]
     queryset = RepairOrder.objects.filter(delete=False)
     serializer_class = RepairOrderDetailSerializer
@@ -113,11 +114,17 @@ class RepairOrderViewSet(CustomModelViewSet):
 
     def filter_queryset(self, queryset):
         queryset = queryset.filter(tenant=self.request.user.employee.tenant, )
-        if self.request.user.is_repair:
+        if self.request.user.is_repair():
             queryset = queryset.filter(repair_users=self.request.user)
         f = RepairOrderFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    def retrieve(self, request, *args, **kwargs):
+        # 工单详情
+        instance = self.get_object()
+        serializer = RepairOrderDetailSerializer(instance)
+        return response_ok(serializer.data)
+
     def perform_create(self, serializer):
         super(RepairOrderViewSet, self).perform_create(serializer)
         instance = serializer.instance

+ 3 - 3
apps/wxapp/urls.py

@@ -17,10 +17,10 @@ urlpatterns = [
     url(r'^poster/$', PosterView.as_view()),
     url(r'^dict/$', DictView.as_view()),
     url(r'^get_device/$', DeviceView.as_view()),
-    url(r'^message/$', MessageView.as_view()),  # 消息
-    url(r'^message_list/$', MessageListView.as_view()),  # 消息
+    url(r'^message/$', MessageView.as_view()),  # 个人消息
+    url(r'^message_list/$', MessageListView.as_view()),  # 个人消息列表
     url(r'^notices/$', NoticesView.as_view()),  # 通知
-    url(r'^notices/(?P<pk>[0-9]+)/$', NoticesDetailView.as_view()),  # 通知
+    url(r'^notices/(?P<pk>[0-9]+)/$', NoticesDetailView.as_view()),  # 通知详情
 
     url(r'^repair_order/', include('apps.wxapp.repair_order.urls')),
     url(r'^inspection_order/', include('apps.wxapp.inspection_order.urls')),

+ 1 - 1
apps/wxapp/views.py

@@ -271,7 +271,7 @@ class MessageView(generics.ListAPIView):
 
     def filter_queryset(self, queryset):
         if self.request.user and self.request.user.is_authenticated:
-            queryset = queryset.filter(tenant=self.request.user.employee.tenant, notice_user__user=self.request.user)
+            queryset = queryset.filter(notice_user__user=self.request.user)
             # 查看自己的通知和所有通知
             # queryset = queryset.filter(Q(range=self.request.user.type) | Q(range=Notices.ALL))
         else:

BIN
uis/up/operation_help_radio/15238921537_20210419163328661107.mp4


BIN
uis/up/operation_help_radio/15517558888_20210419163358924954.mp4


BIN
uis/up/operation_help_radio/15517558888_20210419163539649306.mp4


BIN
uis/up/operation_help_radio/15517558888_20210419172259136362.mp4


+ 21 - 1
uis/zzlyadmin/tenant/edit.html

@@ -36,6 +36,24 @@
                                        autocomplete="off" class="layui-input">
                             </div>
                         </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label"><font color='red' size="4">*</font>企业版本:</label>
+                            <div class="layui-input-block">
+                                <select name="edition" lay-verify="required">
+                                    <option value="" selected>请选择</option>
+                                    <option value="1">标准版</option>
+                                    <option value="2">专业版</option>
+                                    <option value="3">无限版</option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label">到期日期:</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="end_date" id="id_end_date"
+                                       placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
+                            </div>
+                        </div>
 
                         <div class="layui-form-item">
                             <label class="layui-form-label"><font color='red' size="4">*</font>联系人姓名:</label>
@@ -79,7 +97,9 @@
         var id = layui.view.getParameterByName('id');
 
         form.render(null, 'component-form-element');
-
+        laydate.render({
+            elem: '#id_end_date'
+        });
         if (id) {
             var editdata = JSON.parse(JSON.stringify(parent.layui.table.editdata)); // 框架有Bug所以这么转换
             form.val("component-form-element", editdata);

+ 4 - 4
uis/zzlyadmin/tenant/index.html

@@ -56,10 +56,10 @@
             <div class="layui-row layui-col-space15">
                 <div class="layui-col-md12">
                     <div class="LAY-btns" style="margin-bottom: 10px;">
-                        <div style="float:left; margin-right: 5px; margin-top: 5px;">
+                        <!--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>
-                        </div>
+                        </div-->
                         <div style="float:right;">
                             <form class="layui-form" lay-filter="query-form-element">
                                 <div class="seach_items">
@@ -171,7 +171,7 @@
                     type: 2,
                     title: '修改',
                     shadeClose: false,
-                    area: ['700px', '450px'],
+                    area: ['50%', '80%'],
                     btn: ['保存', '取消'],
                     yes: function (index, dom) {
                         layui.submitChild();
@@ -225,7 +225,7 @@
                 title: '添加',
                 shadeClose: false,
                 btn: ['保存', '取消'],
-                area: ['700px', '450px'],
+                area: ['50%', '80%'],
                 yes: function (index, dom) {
                     layui.submitChild();
                 },