Bladeren bron

用户管理 增加 删除功能

liu tao 2 jaren geleden
bovenliggende
commit
cd248a5e2f
2 gewijzigde bestanden met toevoegingen van 30 en 2 verwijderingen
  1. 14 0
      apps/api/admin/user/views.py
  2. 16 2
      uis/admin/user/index.html

+ 14 - 0
apps/api/admin/user/views.py

@@ -12,6 +12,8 @@ from rest_framework.views import APIView
 from apps.staff.serializers import UserSerializer
 from apps.staff.filters import UserFilter
 from apps.system.models import SysLog
+from apps.examination.exam.models import ExamLog
+
 User = get_user_model()
 
 class UserViewSet(CustomModelViewSet):
@@ -35,6 +37,18 @@ class UserViewSet(CustomModelViewSet):
         validated_data = serializer.validated_data
         SysLog.objects.addnew(self.request.user, SysLog.UPDATE, u'修改账户[%s],id=%d' % (instance.username, instance.id), validated_data)
 
+    def destroy(self, request, *args, **kwargs):
+        with transaction.atomic():
+            instance = self.get_object()
+            log_count = SysLog.objects.filter(user_id=instance.id).count()
+            exam_log_count = ExamLog.objects.filter(user_id=instance.id).count()
+            if log_count > 0 or exam_log_count > 0:
+                raise CustomError(u'该账号有使用记录,禁止删除!')
+
+            SysLog.objects.addnew(self.request.user, SysLog.DELETE, u'删除用户[%s],id=%d' % (instance.name, instance.id))
+            instance.delete()
+        return response_ok()
+
 
 class ChangePasswordView(APIView):
     permission_classes = [IsAdministrator, ]

+ 16 - 2
uis/admin/user/index.html

@@ -32,6 +32,9 @@
                 <div class="layui-btn-group">
                   <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
                 </div>
+                <div class="layui-btn-group">
+                    <a class="layui-btn layui-btn-xs" lay-event="user_delete">删除</a>
+                </div>
             </script>
           </div>
         </div>
@@ -131,7 +134,7 @@
         ,{field:'type_text', title:'类型', width:90}
         ,{field:'status_text', title:'启用', width:90}
         ,{field:'online_text', title:'在线', width:90}
-        ,{width:80, align:'left',title: '操作', fixed: 'right', toolbar: '#datagrid-operate-bar'}
+        ,{width:120, align:'left',title: '操作', fixed: 'right', toolbar: '#datagrid-operate-bar'}
       ]]
       ,page: true
       ,height: 'full-104'
@@ -164,7 +167,18 @@
           },
           content: 'edit.html?id='+data.id
         });
-      }
+        }else if (obj.event === 'user_delete') {
+            layer.confirm('确定要删除该用户吗?', function (index) {
+                layer.close(index);
+                admin.req({
+                    url: '/admin/user/' + data.id + '/'
+                    , type: 'delete'
+                    , done: function (res) {
+                        table.reload('datagrid', {});
+                    }
+                });
+            });
+        }
     });
 
     $('#btn_add').on('click', function(){