chenjunkai 6 سال پیش
والد
کامیت
20c1989b60
4فایلهای تغییر یافته به همراه97 افزوده شده و 63 حذف شده
  1. 27 14
      controller/User.py
  2. 1 0
      langer/urls.py
  3. 10 5
      web/index.html
  4. 59 44
      web/userTab.html

+ 27 - 14
controller/User.py

@@ -19,7 +19,7 @@ from django.views.decorators.csrf import csrf_exempt
 from django.utils.decorators import method_decorator
 from object.ResponseObject import ResponseObject
 from django.contrib.auth.hashers import make_password, check_password
-from model.models import UserModel, LangSetModel
+from model.models import UserModel, LangSetModel, LangAreaModel
 import time
 from object.TokenObject import TokenObject
 
@@ -102,12 +102,17 @@ class queryView(TemplateView):
         tko = TokenObject(token)
         if tko.code == 0:
             um_qs = UserModel.objects.filter().values('id', 'username')
-            # ls_qs = LangSetModel.objects.filter().values('user__id', 'lang__lang')
-            # res = []
-            # for um in um_qs:
-            #     um.langsetmodel_set.all()
 
-            return response.json(0, list(um_qs))
+            ls_qs = LangSetModel.objects.filter().values('user__id', 'lang__lang')
+            res = []
+            for um in um_qs:
+                for ls in ls_qs:
+                    if um['id'] == ls['user__id']:
+                        if 'lang_arr' not in um:
+                            um['lang_arr'] = []
+                        um['lang_arr'].append(ls['lang__lang'])
+                res.append(um)
+            return response.json(0, res)
         else:
             return response.json(tko.code)
 
@@ -126,16 +131,24 @@ class updateView(TemplateView):
     def validate(self, request_dict):
         response = ResponseObject()
         token = request_dict.get('token', None)
-        la_list = request_dict.get('la_list', None)
+        id = request_dict.get('id', None)
+        langSetArr = request_dict.get('langSetArr', None)
+        username = request_dict.get('username', None)
+        nowTime = int(time.time())
         tko = TokenObject(token)
         if tko.code == 0:
-            um_qs = UserModel.objects.filter().values('id', 'username')
-            # ls_qs = LangSetModel.objects.filter().values('user__id', 'lang__lang')
-            # res = []
-            # for um in um_qs:
-            #     um.langsetmodel_set.all()
-
-            return response.json(0, list(um_qs))
+            user = UserModel.objects.get(id=id)
+            user.username = username
+            user.updTime = nowTime
+            user.save()
+            if id and langSetArr:
+                LangSetModel.objects.filter(user__id=id).delete()
+                for ls in langSetArr:
+                    LangSetModel.objects.create(lang=LangAreaModel.objects.get(id=ls),
+                                                user=UserModel.objects.get(id=id), addTime=nowTime, updTime=nowTime)
+                return response.json(0)
+            else:
+                return
         else:
             return response.json(tko.code)
 

+ 1 - 0
langer/urls.py

@@ -8,6 +8,7 @@ urlpatterns = [
     path('user/login', User.loginView.as_view()),
     path('user/query', User.queryView.as_view()),
     path('user/delete', User.deleteView.as_view()),
+    path('user/update', User.updateView.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()),

+ 10 - 5
web/index.html

@@ -18,6 +18,11 @@
     <script src="js/jqhttpsdk.js"></script>
     <script src="js/jkcor.js"></script>
     <script src="js/pages.js"></script>
+    <style>
+        td {
+            white-space: nowrap;
+        }
+    </style>
 </head>
 <body>
 <div class="clear-backend">
@@ -87,10 +92,10 @@
         <section class="tab-item-1">
             <div class="container-fluid">
                 <div class="row">
-                    <div id="searchCheckBox"></div>
+                    <div id="searchCheckBox" class="col-md-12"></div>
                     <div class="col-md-12">
-                        <input type="text" class="form-control" id="searchInput"/>
-                        <button class="btn btn-danger form-inline" onclick="searchKeyAction()">搜索</button>
+                        <input type="text" class="form-group form-control" id="searchInput" style="width: 300px;display: inline"/>
+                        <button class="btn btn-danger form-inline" style="margin-bottom: 5px" onclick="searchKeyAction()">搜索</button>
                     </div>
                 </div>
             </div>
@@ -98,8 +103,8 @@
             <div class="container-fluid">
                 <div class="row">
                     <!--add-->
-                    <div class="col-md-12">
-                        <table class="table table-bordered table-hover">
+                    <div class="col-md-12" style="overflow:auto;">
+                        <table class="table table-bordered table-hover" style="width: auto;">
                             <thead id="langTableHead"></thead>
                             <tbody id="langTableBody"></tbody>
                         </table>

+ 59 - 44
web/userTab.html

@@ -90,9 +90,12 @@
                     <div class="col-md-12">
                         <table class="table table-bordered table-hover">
                             <thead id="tabHead">
-                            <tr><th>编号</th>
+                            <tr>
+                                <th>编号</th>
                                 <th>用户</th>
-                                <th>操作</th></tr>
+                                <th>语言</th>
+                                <th>操作</th>
+                            </tr>
                             </thead>
                             <tbody id="tabBody"></tbody>
                         </table>
@@ -139,7 +142,6 @@
                 </div>
             </div>
             <!--模态框end-->
-            <!--<input type="checkbox" aria-label="Checkbox for following text input">-->
 
         </section>
     </div>
@@ -147,7 +149,7 @@
 
 <script type="text/javascript">
     let index_data
-    let user_data
+    let lang_data
     $(function () {
         let post_data = {
             'token': $.cookie('access_token'),
@@ -168,14 +170,13 @@
             http_ip_prot + 'langArea/query', JSON.stringify(post_data),
             function (data) {
                 if (data['code'] == 0) {
-                    user_data = data['res']
-                    console.log(user_data)
+                    lang_data = data['res']
+                    console.log(lang_data)
                 } else {
                     alert(data['msg'])
                 }
             }
         );
-
     });
 
     function addTable(data) {
@@ -183,7 +184,12 @@
         $.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>'
+            let langArr_td = '<td>';
+            $.each(obj['lang_arr'], function (x, y) {
+                langArr_td += (y + '&nbsp;&nbsp')
+            });
+            langArr_td += '</td>';
+            body_html += '<tr><td>' + obj['id'] + '</td><td>' + obj['username'] + '</td>' + langArr_td + '<td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td></tr>'
         })
         $('#tabBody').html(body_html)
     }
@@ -232,53 +238,62 @@
         }
     }
 
-    function editFunc(lang_id) {
+    function editFunc(id) {
         // alert(langKey)
         console.log(index_data)
         $('#modal-container-edit').modal('show')
-        let html_edit = ''
+        let html_edit = '<label for="editDataInput" class="form-group">用户名:</label>'
+        let user_lang_arr
         $.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 + '">'
+            if (id == obj['id']) {
+                user_lang_arr = obj['lang_arr']
+                html_edit += '<input type="text" class="form-control" id="editDataInput" value="' + obj['username'] + '" lid="' + id + '">'
             }
         });
+        html_edit += '<hr><span class="form-group">显示语言:</span>';
+        $.each(lang_data, function (idx, obj) {
+            let checkbox_val=''
+            if(user_lang_arr){
+                let check_flag = $.inArray(obj['lang'],user_lang_arr)
+                console.log(check_flag)
+                if(check_flag>=0){
+                    checkbox_val+='checked="checked"'
+                }
+            }
+            html_edit += ('<label class="form-control"><input type="checkbox" '+checkbox_val+' aria-label="Checkbox for following text input" value="' + obj['id'] + '">' + obj['lang'] + '</label>')
+        })
+        console.log(user_lang_arr)
+
         $('#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')
+        let sub_lang_arr = []
+        $.each($('input:checkbox:checked'), function () {
+            sub_lang_arr.push($(this).val())
+        });
+        console.log('--------')
+        console.log(sub_lang_arr)
+        console.log('--------')
+        let post_data = {
+            'token': $.cookie('access_token'),
+            'id': $('#editDataInput').attr('lid'),
+            'username': $('#editDataInput').val(),
+            'langSetArr': sub_lang_arr
         }
+        console.log(post_data)
+        $.postJSON(
+            http_ip_prot + 'user/update', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    console.log(data)
+                    // alert(data['msg'])
+                    window.location.reload()
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
     }
 
     function subRegAction() {