diff --git a/apps/assets/models.py b/apps/assets/models.py
index 1b13b8621..5d6d18096 100644
--- a/apps/assets/models.py
+++ b/apps/assets/models.py
@@ -233,6 +233,10 @@ class SystemUser(models.Model):
     def assets_amount(self):
         return self.assets.count()
 
+    @property
+    def asset_group_amount(self):
+        return self.asset_groups.count()
+
     class Meta:
         db_table = 'system_user'
 
diff --git a/apps/assets/serializers.py b/apps/assets/serializers.py
index 9613da621..e035d58e4 100644
--- a/apps/assets/serializers.py
+++ b/apps/assets/serializers.py
@@ -35,7 +35,7 @@ class SystemUserSerializer(serializers.ModelSerializer):
 
     def get_field_names(self, declared_fields, info):
         fields = super(SystemUserSerializer, self).get_field_names(declared_fields, info)
-        fields.append('assets_amount')
+        fields.extend(['assets_amount'])
         return fields
 
 
diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html
index ea35972a0..35d6b6789 100644
--- a/apps/assets/templates/assets/admin_user_list.html
+++ b/apps/assets/templates/assets/admin_user_list.html
@@ -39,13 +39,6 @@ $(document).ready(function(){
                 var innerHtml = cellData.length > 8 ? cellData.substring(0, 24) + '...': cellData;
                 $(td).html('<a href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</a>');
              }},
-{#            {targets: 6, createdCell: function (td, cellData) {#}
-{#                if (!cellData) {#}
-{#                    $(td).html('<i class="fa fa-times text-danger"></i>')#}
-{#                } else {#}
-{#                    $(td).html('<i class="fa fa-check text-navy"></i>')#}
-{#                }#}
-{#             }},#}
             {targets: 6, createdCell: function (td, cellData, rowData) {
                 var script_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs btn-primary">{% trans "Script" %}</a>'.replace('99991937', cellData);
                 var update_btn = '<a href="{% url "assets:admin-user-update" pk=99991937 %}" class="btn btn-xs m-l-xs btn-info">{% trans "Update" %}</a>'.replace('99991937', cellData);
@@ -55,7 +48,6 @@ $(document).ready(function(){
         ajax_url: '{% url "api-assets:admin-user-list" %}',
         columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" }, {data: function () {return 'lost'} },
                   {data: "comment" }, {data: "id" }],
-        op_html: $('#actions').html()
     };
     jumpserver.initDataTable(options);
 });
diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html
index fb1e41323..77526ff37 100644
--- a/apps/assets/templates/assets/system_user_list.html
+++ b/apps/assets/templates/assets/system_user_list.html
@@ -1,43 +1,60 @@
 {% extends '_base_list.html' %}
 {% load i18n %}
 {% load common_tags %}
-{% block content_left_head %}
+
+{% block table_search %}
+{% endblock %}
+
+{% block table_container %}
+<div class="uc pull-left m-l-5 m-r-5">
     <a href="{% url 'assets:system-user-create' %}" class="btn btn-sm btn-primary "> {% trans "Create system user" %} </a>
+</div>
+<table class="table table-striped table-bordered table-hover " id="system_user_list_table" >
+    <thead>
+    <tr>
+        <th class="text-center">
+            <input type="checkbox" id="check_all" class="ipt_check_all" >
+        </th>
+        <th class="text-center">{% trans 'Name' %}</th>
+        <th class="text-center">{% trans 'Username' %}</th>
+        <th class="text-center">{% trans 'Asset' %}</th>
+        <th class="text-center">{% trans 'Unreachable' %}</th>
+        <th class="text-center">{% trans 'Comment' %}</th>
+        <th class="text-center">{% trans 'Action' %}</th>
+    </tr>
+    </thead>
+    <tbody>
+    </tbody>
+</table>
+{% endblock %}
+{% block custom_foot_js %}
+<script>
+    $(document).ready(function(){
+        var options = {
+            ele: $('#system_user_list_table'),
+            columnDefs: [
+                {targets: 1, createdCell: function (td, cellData, rowData) {
+                    var detail_btn = '<a href="{% url "assets:system-user-detail" pk=99991937 %}">' + cellData + '</a>';
+                    $(td).html(detail_btn.replace('99991937', rowData.id));
+                 }},
+                {targets: 5, createdCell: function (td, cellData) {
+                    var innerHtml = cellData.length > 30 ? cellData.substring(0, 30) + '...': cellData;
+                    $(td).html('<span href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</span>');
+                 }},
+                {targets: 6, createdCell: function (td, cellData, rowData) {
+                    var script_btn = '<a href="{% url "assets:system-user-update" pk=99991937 %}" class="btn btn-xs btn-primary">{% trans "Script" %}</a>'.replace('99991937', cellData);
+                    var update_btn = '<a href="{% url "assets:system-user-update" pk=99991937 %}" class="btn btn-xs m-l-xs btn-info">{% trans "Update" %}</a>'.replace('99991937', cellData);
+                    var del_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_admin_user_delete" data-uid="99991937">{% trans "Delete" %}</a>'.replace('99991937', cellData);
+                    $(td).html(script_btn + update_btn + del_btn)
+                 }}],
+            ajax_url: '{% url "api-assets:system-user-list" %}',
+            columns: [{data: "id" }, {data: "name" }, {data: "username" }, {data: "assets_amount" }, {data: function () { return "3"}},
+                      {data: "comment" }, {data: "id" }],
+        };
+        jumpserver.initDataTable(options);
+    });
+</script>
 {% endblock %}
 
-{% block table_head %}
-    <th class="text-center">{% trans 'ID' %}</th>
-    <th class="text-center"><a href="{% url 'assets:system-user-list' %}?sort=name">{% trans 'Name' %}</a></th>
-    <th class="text-center"><a href="{% url 'assets:system-user-list' %}?sort=username">{% trans 'Username' %}</a></th>
-    <th class="text-center">{% trans 'Asset num' %}</th>
-    <th class="text-center">{% trans 'Asset group num' %}</th>
-    <th class="text-center">{% trans 'Unreachable' %}</th>
-    <th class="text-center">{% trans 'Comment' %}</th>
-    <th class="text-center"></th>
-{% endblock %}
 
-{% block table_body %}
-     {% for system_user in system_user_list %}
-         <tr class="gradeX">
-             <td class="text-center">{{ system_user.id }}</td>
-             <td>
-                 <a href="{% url 'assets:system-user-detail' pk=system_user.id %}">
-                     {{ system_user.name }}
-                 </a>
-             </td>
-             <td class="text-center">{{ system_user.username }}</td>
-             <td class="text-center">{{ system_user.get_assets|length }}</td>
-             <td class="text-center">{{ system_user.asset_groups.count }}</td>
-             <td class="text-center">{{ system_user.assets.count }}</td>
-             <td class="text-center">{{ system_user.comment|truncatewords:4 }}</td>
-             <td class="text-center">
-                 <!-- Todo: Click script button will paste a url to clipboard like: curl http://url/system_user_create.sh | bash -->
-                 <a href="{% url 'assets:system-user-update' pk=system_user.id %}" class="btn btn-xs btn-primary">{% trans 'Script' %}</a>
-                 <!-- Todo: Click refresh button will run a task to test admin user could connect asset or not immediately -->
-                 <a href="{% url 'assets:system-user-update' pk=system_user.id %}" class="btn btn-xs btn-warning">{% trans 'Refresh' %}</a>
-                 <a href="{% url 'assets:system-user-update' pk=system_user.id %}" class="btn btn-xs btn-info">{% trans 'Update' %}</a>
-                 <a onclick="obj_del(this,'{{ system_user.name }}','{% url 'assets:system-user-delete' system_user.id %}')" class="btn btn-xs btn-danger del">{% trans 'Delete' %}</a>
-             </td>
-         </tr>
-     {% endfor %}
-{% endblock %}
+
diff --git a/apps/assets/views.py b/apps/assets/views.py
index 31619621d..c8bbc3911 100644
--- a/apps/assets/views.py
+++ b/apps/assets/views.py
@@ -478,35 +478,17 @@ class AdminUserDeleteView(AdminUserRequiredMixin, DeleteView):
     success_url = reverse_lazy('assets:admin-user-list')
 
 
-class SystemUserListView(AdminUserRequiredMixin, ListView):
-    model = SystemUser
-    paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
-    context_object_name = 'system_user_list'
+class SystemUserListView(AdminUserRequiredMixin, TemplateView):
     template_name = 'assets/system_user_list.html'
 
     def get_context_data(self, **kwargs):
         context = {
             'app': _('Assets'),
             'action': _('System user list'),
-            'keyword': self.request.GET.get('keyword', '')
         }
         kwargs.update(context)
         return super(SystemUserListView, self).get_context_data(**kwargs)
 
-    def get_queryset(self):
-        # Todo: Default order by lose asset connection num
-        self.queryset = super(SystemUserListView, self).get_queryset()
-        self.keyword = keyword = self.request.GET.get('keyword', '')
-        self.sort = sort = self.request.GET.get('sort', '-date_created')
-
-        if keyword:
-            self.queryset = self.queryset.filter(Q(name__icontains=keyword) |
-                                                 Q(comment__icontains=keyword))
-
-        if sort:
-            self.queryset = self.queryset.order_by(sort)
-        return self.queryset
-
 
 class SystemUserCreateView(AdminUserRequiredMixin, SuccessMessageMixin, CreateView):
     model = SystemUser
diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js
index e107832f4..5593fec2a 100644
--- a/apps/static/js/jumpserver.js
+++ b/apps/static/js/jumpserver.js
@@ -292,7 +292,7 @@ jumpserver.initDataTable = function (options) {
   columnDefs = options.columnDefs ? options.columnDefs.concat(columnDefs) : columnDefs;
   var table = ele.DataTable({
         pageLength: options.pageLength || 15,
-        dom: options.dom || '<"#uc.pull-left"><"html5buttons"B>flti<"row m-t"<"#op.col-md-6"><"col-md-6"p>>',
+        dom: options.dom || '<"#uc.pull-left">flt<"row m-t"<"col-md-8"<"#op.col-md-6"><"col-md-6 text-center"i>><"col-md-4"p>>',
         language: {
             url: options.i18n_url || "/static/js/plugins/dataTables/i18n/zh-hans.json"
         },