chenjunkai 6 gadi atpakaļ
vecāks
revīzija
ee936b1bf4
7 mainītis faili ar 371 papildinājumiem un 26 dzēšanām
  1. 2 2
      controller/LangArea.py
  2. 0 2
      controller/LangWord.py
  3. 50 2
      controller/User.py
  4. 2 0
      langer/urls.py
  5. 16 15
      web/index.html
  6. 10 5
      web/langTab.html
  7. 291 0
      web/userTab.html

+ 2 - 2
controller/LangArea.py

@@ -101,5 +101,5 @@ class LangAreaView(TemplateView):
             return response.json(0)
 
     def do_query(self, request_dict, response, userID):
-        la_qs = LangAreaModel.objects.filter().values('lang', 'id')
-        return response.json(0, list(la_qs))
+        la_qs = LangAreaModel.objects.filter().values('lang','id')
+        return response.json(0, list(la_qs))

+ 0 - 2
controller/LangWord.py

@@ -43,8 +43,6 @@ class LangWordView(TemplateView):
         response = ResponseObject()
         token = request_dict.get('token', None)
         tko = TokenObject(token)
-        from var_dump import var_dump
-        var_dump(request_dict)
         if tko.code == 0:
             userID = tko.userID
             if operation == 'add':

+ 50 - 2
controller/User.py

@@ -79,8 +79,56 @@ class loginView(TemplateView):
             if check_password(password, user_qs[0].password):
                 tko = TokenObject()
                 res = tko.generate({'userID': user_qs[0].id})
-                return response.json(0,res)
+                return response.json(0, res)
             else:
                 return response.json(401)
         else:
-            return response.json(444)
+            return response.json(444)
+
+
+class queryView(TemplateView):
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = json.loads(request.body.decode('utf-8'))
+        return self.validate(request_dict)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        return self.validate(request_dict)
+
+    def validate(self, request_dict):
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        tko = TokenObject(token)
+        if tko.code == 0:
+            um_qs = UserModel.objects.filter().values('id', 'username')
+            return response.json(0, list(um_qs))
+        else:
+            return response.json(tko.code)
+
+
+class deleteView(TemplateView):
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = json.loads(request.body.decode('utf-8'))
+        return self.validate(request_dict)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        return self.validate(request_dict)
+
+    def validate(self, request_dict):
+        response = ResponseObject()
+        token = request_dict.get('token', None)
+        tko = TokenObject(token)
+        if tko.code == 0:
+            id = request_dict.get('id', None)
+            if id:
+                UserModel.objects.filter(id=id).delete()
+                return response.json(0)
+            else:
+                return response.json(0)
+        else:
+            return response.json(tko.code)

+ 2 - 0
langer/urls.py

@@ -6,6 +6,8 @@ urlpatterns = [
     path('admin/', admin.site.urls),
     path('user/register', User.registerView.as_view()),
     path('user/login', User.loginView.as_view()),
+    path('user/query', User.queryView.as_view()),
+    path('user/delete', User.deleteView.as_view()),
     re_path('langSet/(?P<operation>.*)', LangSet.LangSetView.as_view()),
     re_path('langWord/(?P<operation>.*)', LangWord.LangWordView.as_view()),
     re_path('langArea/(?P<operation>.*)', LangArea.LangAreaView.as_view()),

+ 16 - 15
web/index.html

@@ -36,29 +36,30 @@
     <input type="radio" class="tab-2" name="tab" onclick="location.href='langTab.html'">
     <span>Lang</span><i class="fa fa-medium"></i>
 
-<!--    <input type="radio" class="tab-3" name="tab">
+    <input type="radio" class="tab-3" name="tab" onclick="location.href='userTab.html'">
     <span>Users</span><i class="fa fa-user"></i>
+    <!--
 
-    <input type="radio" class="tab-4" name="tab">
-    <span>Comments</span><i class="fa fa-comment"></i>
+        <input type="radio" class="tab-4" name="tab">
+        <span>Comments</span><i class="fa fa-comment"></i>
 
-    <input type="radio" class="tab-5" name="tab">
-    <span>Upload</span><i class="fa fa-cloud-upload"></i>
+        <input type="radio" class="tab-5" name="tab">
+        <span>Upload</span><i class="fa fa-cloud-upload"></i>
 
-    <input type="radio" class="tab-6" name="tab">
-    <span>Favorite</span><i class="fa fa-star"></i>
+        <input type="radio" class="tab-6" name="tab">
+        <span>Favorite</span><i class="fa fa-star"></i>
 
-    <input type="radio" class="tab-7" name="tab">
-    <span>Photos</span><i class="fa fa-photo"></i>
+        <input type="radio" class="tab-7" name="tab">
+        <span>Photos</span><i class="fa fa-photo"></i>
 
-    <input type="radio" class="tab-8" name="tab">
-    <span>Analysis</span><i class="fa fa-line-chart"></i>
+        <input type="radio" class="tab-8" name="tab">
+        <span>Analysis</span><i class="fa fa-line-chart"></i>
 
-    <input type="radio" class="tab-9" name="tab">
-    <span>Links</span><i class="fa fa-link"></i>
+        <input type="radio" class="tab-9" name="tab">
+        <span>Links</span><i class="fa fa-link"></i>
 
-    <input type="radio" class="tab-10" name="tab">
-    <span>Settings</span><i class="fa fa-cog"></i>-->
+        <input type="radio" class="tab-10" name="tab">
+        <span>Settings</span><i class="fa fa-cog"></i>-->
 
     <!-- tab-top-bar -->
     <div class="top-bar">

+ 10 - 5
web/langTab.html

@@ -33,6 +33,9 @@
 
     <input type="radio" class="tab-2" name="tab" checked="checked">
     <span>Lang</span><i class="fa fa-medium"></i>
+
+    <input type="radio" class="tab-3" name="tab" onclick="location.href='userTab.html'">
+    <span>Users</span><i class="fa fa-user"></i>
     <!-- tab-top-bar -->
     <div class="top-bar">
         <ul>
@@ -82,9 +85,11 @@
                     <div class="col-md-12">
                         <table class="table table-bordered table-hover">
                             <thead id="tabLangHead">
-                            <th>编号</th>
-                            <th>语言</th>
-                            <th>操作</th>
+                           <tr>
+                               <th>编号</th>
+                               <th>语言</th>
+                               <th>操作</th>
+                           </tr>
                             </thead>
                             <tbody id="tabLangBody"></tbody>
                         </table>
@@ -95,7 +100,7 @@
             <div class="container-fluid">
                 <div class="row">
                     <div class="col-md-12">
-                        <div class="modal fade" id="modal-container-edit-lang" role="dialog"
+                        <div class="modal fade" id="modal-container-edit" role="dialog"
                              aria-labelledby="myModalLabel"
                              aria-hidden="true">
                             <div class="modal-dialog" role="document">
@@ -212,7 +217,7 @@
     function editFunc(lang_id) {
         // alert(langKey)
         console.log(lang_data)
-        $('#modal-container-edit-lang').modal('show')
+        $('#modal-container-edit').modal('show')
         let html_edit = ''
         $.each(lang_data, function (idx, obj) {
             if (lang_id == obj['id']) {

+ 291 - 0
web/userTab.html

@@ -0,0 +1,291 @@
+<!doctype html>
+<html lang="zh">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>afaa</title>
+    <link rel="stylesheet" type="text/css" href="css/normalize.css"/>
+    <link rel="stylesheet" type="text/css" href="css/default.css">
+    <link rel="stylesheet" href="css/style.css">
+    <link href="http://cdn.bootcss.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet">
+    <link href="css/bootstrap.min.css" rel="stylesheet">
+    <script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
+    <script src="js/jquery.min.js"></script>
+    <script src="js/bootstrap.min.js"></script>
+    <script src="js/jquery_cookie_min.js"></script>
+    <script src="js/scripts.js"></script>
+    <script src="js/jqhttpsdk.js"></script>
+    <script src="js/jkcor.js"></script>
+    <script src="js/pages.js"></script>
+</head>
+<body>
+<div class="clear-backend">
+    <div class="avatar">
+        <div>
+            <a href="#" target="_blank">
+                <img src="img/admin.png" alt="">
+            </a>
+        </div>
+    </div>
+    <input type="radio" class="tab-1" name="tab" onclick="location.href='index.html'">
+    <span>Home</span><i class="fa fa-home"></i>
+
+    <input type="radio" class="tab-2" name="tab" onclick="location.href='langTab.html'">
+    <span>Lang</span><i class="fa fa-medium"></i>
+
+    <input type="radio" class="tab-3" name="tab" checked="checked">
+    <span>Users</span><i class="fa fa-user"></i>
+
+    <!-- tab-top-bar -->
+    <div class="top-bar">
+        <ul>
+            <li>
+                <a href="" title="Log Out">
+                    <i class="fa fa-sign-out"></i>
+                </a>
+            </li>
+            <li>
+                <a href="" title="Messages">
+                    <i class="fa fa-envelope"></i>
+                </a>
+            </li>
+            <li>
+                <a href="" title="Edit">
+                    <i class="fa fa-edit"></i>
+                </a>
+            </li>
+        </ul>
+    </div>
+
+    <!-- tab-content -->
+    <div class="tab-content">
+        <section class="tab-item-3">
+            <div class="container-fluid">
+                <div class="row">
+                    <div class="col-md-12">
+                        <form role="form">
+                            <div class="form-group">
+
+                                <label for="InputUsername">
+                                    用户
+                                </label>
+                                <input type="text" class="form-control" id="InputUsername"/>
+                                <label for="InputPassword">
+                                    密码
+                                </label>
+                                <input type="text" class="form-control" id="InputPassword"/>
+                            </div>
+
+                            <button type="submit" class="btn btn-primary" onclick="subRegAction();return false;">
+                                保存
+                            </button>
+                        </form>
+                    </div>
+                </div>
+            </div>
+            <hr>
+            <div class="container-fluid">
+                <div class="row">
+                    <div class="col-md-12">
+                        <table class="table table-bordered table-hover">
+                            <thead id="tabHead">
+                            <tr><th>编号</th>
+                                <th>用户</th>
+                                <th>操作</th></tr>
+                            </thead>
+                            <tbody id="tabBody"></tbody>
+                        </table>
+                    </div>
+                </div>
+            </div>
+            <!--模态框start-->
+            <div class="container-fluid">
+                <div class="row">
+                    <div class="col-md-12">
+                        <div class="modal fade" id="modal-container-edit" role="dialog"
+                             aria-labelledby="myModalLabel"
+                             aria-hidden="true">
+                            <div class="modal-dialog" role="document">
+                                <div class="modal-content">
+                                    <div class="modal-header">
+                                        <h5 class="modal-title" id="myModalLabel">
+                                            EDIT
+                                        </h5>
+                                        <button type="button" class="close" data-dismiss="modal">
+                                            <span aria-hidden="true">×</span>
+                                        </button>
+                                    </div>
+                                    <div class="modal-body">
+                                        <div class="form-group" id="edit_model_form">
+                                        </div>
+                                    </div>
+                                    <div class="modal-footer">
+
+                                        <button type="button" class="btn btn-primary editRowSaveBtn"
+                                                onclick="editRow(this);return false;">
+                                            Save changes
+                                        </button>
+                                        <button type="button" class="btn btn-secondary" data-dismiss="modal">
+                                            Close
+                                        </button>
+                                    </div>
+                                </div>
+
+                            </div>
+
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!--模态框end-->
+        </section>
+    </div>
+</div>
+
+<script type="text/javascript">
+    let index_data
+    $(function () {
+        let post_data = {
+            'token': $.cookie('access_token'),
+        };
+        $.postJSON(
+            http_ip_prot + 'user/query', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    console.log(data)
+                    index_data = data['res']
+                    addTable(data['res'])
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
+    });
+
+    function addTable(data) {
+        let body_html = ''
+        $.each(data, function (idx, obj) {
+            let edit_btn = '<a href="#" title="Edit" onclick="editFunc(\'' + obj['id'] + '\')"><i class="fa fa-edit"></i></a>';
+            let del_btn = '<a href="#" title="Delete" onclick="delArea(\'' + obj['id'] + '\')"><i class="fa fa-ban"></i></a>';
+            body_html += '<tr><td>' + obj['id'] + '</td><td>' + obj['username'] + '</td><td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td></tr>'
+        })
+        $('#tabBody').html(body_html)
+    }
+
+    function subLangAre() {
+        let access_token = $.cookie('access_token')
+        let langArea = $('#InputLangArea').val()
+        let post_data = {
+            'token': access_token,
+            'lang': langArea,
+        }
+        console.log(post_data)
+        $.postJSON(
+            http_ip_prot + 'langArea/add',
+            JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    alert(data['msg'])
+                    window.location.reload();
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
+    }
+
+    function delArea(id) {
+        let post_data = {
+            'token': $.cookie('access_token'),
+            'id': id
+        }
+        let cr = confirm('delete it ?')
+        if (cr) {
+            $.postJSON(
+                http_ip_prot + 'user/delete', JSON.stringify(post_data),
+                function (data) {
+                    if (data['code'] == 0) {
+                        console.log(data)
+                        // alert(data['msg'])
+                        window.location.reload()
+                    } else {
+                        alert(data['msg'])
+                    }
+                }
+            );
+        }
+    }
+
+    function editFunc(lang_id) {
+        // alert(langKey)
+        console.log(index_data)
+        $('#modal-container-edit').modal('show')
+        let html_edit = ''
+        $.each(index_data, function (idx, obj) {
+            if (lang_id == obj['id']) {
+                html_edit = '<input type="text" class="form-control" id="editDataInput" value="' + obj['username'] + '" lid="' + lang_id + '">'
+            }
+        });
+        $('#edit_model_form').html(html_edit)
+        return
+        // let post_data = {'token': $.cookie('access_token')};
+        // let html_per = '<label for="lang_key_edit">KEY</label><input class="form-control" type="text" id="lang_key_edit" oldkey="' + langKey + '" value="' + langKey + '"> '
+        // $.each(la_list, function (idx, obj) {
+        //     console.log(obj);
+        //     html_per += ('<label for="InputLangArea">' + obj['lang'] + ':</label>' +
+        //         '<input type="text" class="form-control" lang="' + obj['lang'] + '" value="' + (lw_data[langKey][obj['lang']] ? lw_data[langKey][obj['lang']] : '') + '"/>')
+        // });
+        // // console.log(html_per)
+        // $('#edit_model_form').html(html_per)
+    }
+
+    function editRow() {
+        let lang_id = $('#editDataInput').attr('lid')
+        let lang_area = $('#editDataInput').val()
+        if (lang_id && lang_area) {
+            let post_data = {
+                'token': $.cookie('access_token'),
+                'id': lang_id,
+                'lang': lang_area
+            }
+            $.postJSON(
+                http_ip_prot + 'langArea/update', JSON.stringify(post_data),
+                function (data) {
+                    if (data['code'] == 0) {
+                        console.log(data)
+                        // alert(data['msg'])
+                        window.location.reload()
+                    } else {
+                        alert(data['msg'])
+                    }
+                }
+            );
+        } else {
+            alert('none')
+        }
+    }
+
+    function subRegAction() {
+        let username = $("#InputUsername").val();
+        let password = $("#InputPassword").val();
+        let post_data = {
+            'username': username,
+            'password': password
+        };
+        $.postJSON(
+            http_ip_prot + 'user/register',
+            JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    alert(data['msg'])
+                    window.location.reload()
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
+    }
+</script>
+</body>
+</html>