Эх сурвалжийг харах

Merge branch 'master' of http://192.168.136.45:3000/SERVER/langer

pengzhibo168 5 жил өмнө
parent
commit
b39a76f73b

+ 4 - 4
controller/LangWord.py

@@ -169,10 +169,10 @@ class LangWordView(TemplateView):
                     lk_qs = lk_qs.filter(langvalmodel__word_val__contains=searchVal, langvalmodel__la__lang=searchKey)
             count = lk_qs.count()
             # lk_qs = lk_qs[(page - 1) * line:page * line].values_list('word_key', flat=True)
-            if orderByupdate == 1:
-                lk_qs = lk_qs.order_by('updTime')
-            else:
-                lk_qs = lk_qs.order_by('-updTime')
+            # if orderByupdate == 1:
+            #     lk_qs = lk_qs.order_by('updTime')
+            # else:
+            #     lk_qs = lk_qs.order_by('-updTime')
             lk_qs = lk_qs[(page - 1) * line:page * line].values('word_key', 'updTime')
             k_list = []
             lw_dict = {}

+ 47 - 3
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, LangAreaModel
+from model.models import UserModel, LangSetModel, LangAreaModel, LangPermModel
 import time
 from object.TokenObject import TokenObject
 
@@ -46,7 +46,7 @@ class registerView(TemplateView):
             create_dict = {
                 'username': username,
                 'password': make_password(password),
-                'role_id':role_id,
+                'role_id': role_id,
                 'addTime': nowTime,
                 'updTime': nowTime}
             try:
@@ -111,9 +111,10 @@ class queryView(TemplateView):
             user_qs = UserModel.objects.filter(id=userID, username='admin')
             if not user_qs.exists():
                 return response.json(403)
-            um_qs = UserModel.objects.filter().values('id', 'username','role_id')
+            um_qs = UserModel.objects.filter().values('id', 'username', 'role_id')
 
             ls_qs = LangSetModel.objects.filter().values('user__id', 'lang__lang')
+            lp_qs = LangPermModel.objects.filter().values('user__id', 'lang__lang')
             res = []
             for um in um_qs:
                 for ls in ls_qs:
@@ -121,6 +122,11 @@ class queryView(TemplateView):
                         if 'lang_arr' not in um:
                             um['lang_arr'] = []
                         um['lang_arr'].append(ls['lang__lang'])
+                for lp in lp_qs:
+                    if um['id'] == lp['user__id']:
+                        if 'lp_arr' not in um:
+                            um['lp_arr'] = []
+                        um['lp_arr'].append(lp['lang__lang'])
                 res.append(um)
             return response.json(0, res)
         else:
@@ -143,6 +149,7 @@ class updateView(TemplateView):
         token = request_dict.get('token', None)
         id = request_dict.get('id', None)
         langSetArr = request_dict.get('langSetArr', None)
+        langPermArr = request_dict.get('langPermArr', None)
         username = request_dict.get('username', None)
         role_id = request_dict.get('role_id', None)
         nowTime = int(time.time())
@@ -155,9 +162,13 @@ class updateView(TemplateView):
             user.save()
             if id and langSetArr:
                 LangSetModel.objects.filter(user__id=id).delete()
+                LangPermModel.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)
+                for lp in langPermArr:
+                    LangPermModel.objects.create(lang=LangAreaModel.objects.get(id=lp),
+                                                 user=UserModel.objects.get(id=id), addTime=nowTime, updTime=nowTime)
                 return response.json(0)
             else:
                 return response.json(0)
@@ -189,3 +200,36 @@ class deleteView(TemplateView):
                 return response.json(0)
         else:
             return response.json(tko.code)
+
+
+class initView(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:
+            userID = tko.userID
+            user_qs = UserModel.objects.filter(id=userID, username='admin')
+            if user_qs.exists():
+                is_admin = 1
+            else:
+                is_admin = 0
+            lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
+            lang_perm_ls = list(lang_perm_ql)
+            res = {
+                'user_perm':is_admin,
+                'lang_perm_ls': lang_perm_ls
+            }
+            return response.json(0, res)
+        else:
+            return response.json(tko.code)

+ 1 - 0
langer/urls.py

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

+ 15 - 1
model/models.py

@@ -148,4 +148,18 @@ class skuConditionModel(models.Model):
     class Meta:
         ordering = ('-id',)
         verbose_name = 'sku条件表'
-        db_table = 'sku_condition_name'
+        db_table = 'sku_condition_name'
+
+
+# 用户关联可编辑语种配置
+class LangPermModel(models.Model):
+    id = models.AutoField(primary_key=True)
+    user = models.ForeignKey(UserModel, verbose_name='用户表id', to_field='id', on_delete=models.CASCADE)
+    lang = models.ForeignKey(LangAreaModel, verbose_name='关联语种id', to_field='id', on_delete=models.CASCADE)
+    addTime = models.IntegerField(verbose_name='添加时间', default=0)
+    updTime = models.IntegerField(verbose_name='更新时间', default=0)
+
+    class Meta:
+        ordering = ('-addTime',)
+        verbose_name = '用户关联语种配置'
+        db_table = 'lang_perm'

+ 42 - 26
web/index.html

@@ -185,7 +185,8 @@
     var orderByupdate = 0
     var page = 1
     var line = 10
-
+    var initData
+    var IndexFlat = 0
     $(function () {
         toastr.options = {
             "closeButton": true,
@@ -215,20 +216,6 @@
             'orderByupdate': orderByupdate
         };
         InitIndex(post_data)
-        // $('#pagination').pagination({
-        //     pages: 50, //总页数
-        //     edges: 2,
-        //     cssStyle: 'pagination-sm', //按纽大小pagination-lg或写入自定义css
-        //     displayedPages: 5, //显示几个
-        //     onPageClick: function(pageNumber, event) {
-        //         //点击时调用
-        //         // alert(pageNumber);
-        //     },
-        //     onInit: function(getid) {
-        //         //刷新时或初始化调用
-        //         // alert(getid);
-        //     }
-        // });
     });
 
     function orderByUpdateTimeFunc(status) {
@@ -282,6 +269,21 @@
                 }
             }
         );
+
+        $.postJSON(
+            http_ip_prot + 'user/init', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    console.log('initData__start')
+                    console.log(data)
+                    console.log('initData__end')
+                    initData = data['res']
+                } else {
+                    window.location.href = "http://" + domain + ":7724/web/login.html";
+                    alert(data['msg'])
+                }
+            }
+        );
     }
 
     let la_list
@@ -337,22 +339,19 @@
         //头部标签添加
 
         $.each(head_data.reverse(), function (idx, obj) {
-            // console.log(idx)
             head_html += ('<th>' + obj['lang'] + '</th>')
             search_tab += '&nbsp;&nbsp;&nbsp;<label><input type="radio" name="optionsRadios" value="' + obj['lang'] + '">' + obj['lang'] + '</label>'
         });
-        // head_html += '<th>udpateTime &nbsp;<i class="fa fa-arrow-down" aria-hidden="true"></i></td><th width="180px"><a href="#" onclick="addRow()">add</a></th></tr>';
         head_html += ('<th><a href="javascript:void(0);" onclick="orderByUpdateTimeFunc(' + orderByupdate + ')">udpateTime &nbsp;<i class="fa ' + (orderByupdate == 1 ? 'fa-arrow-up' : 'fa-arrow-down') + '" aria-hidden="true"></i></a></td></tr>');
         // search_tab += '<td width="180px"><button class="btn-primary btn">搜索</button></td></tr>';
-        $('#searchCheckBox').html(search_tab)
+        if (IndexFlat == 0) {
+            $('#searchCheckBox').html(search_tab)
+            IndexFlat = 1
+        }
         let body_html = '';
 
         console.log('--------');
         $.each(body_data, function (idx, obj) {
-            // console.log(idx)
-            console.log(obj)
-            //let edit_btn = '<a href="javascript:void(0);" title="Edit" onclick="editFunc(\'' + idx + '\')"><i class="fa fa-edit"></i></a>';
-            //let del_btn = '<a href="javascript:void(0);" title="Delete" onclick="deleteFunc(\'' + idx + '\')"><i class="fa fa-ban"></i></a>';
             let edit_btn = '<a href="javascript:void(0);" title="Edit" onclick="editFunc(this)"><i class="fa fa-edit"></i></a>';
             let del_btn = '<a href="javascript:void(0);" title="Delete" onclick="deleteFunc(this)"><i class="fa fa-ban"></i></a>';
             // let del_btn = '';
@@ -442,12 +441,23 @@
 
         let langKey = $($this).parent().parent().children().eq(1).text()
         $('#modal-container-593541').modal('show')
+        let user_perm = initData['user_perm']
+        console.log(initData)
         // 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 + '"> '
+        let html_per = '<label for="lang_key_edit">KEY</label><input class="form-control" ' + (user_perm == 1 ? '' : 'disabled="disabled"') + ' type="text" id="lang_key_edit" oldkey="' + langKey + '" value="' + langKey + '"> '
         $.each(la_list, function (idx, obj) {
-            console.log(obj);
+            let lang_perm_ls = initData['lang_perm_ls']
+            let check_perm_flag = $.inArray(obj['lang'], lang_perm_ls)
+            if (check_perm_flag >= 0) {
+                var inputAttr = ''
+            } else {
+                var inputAttr = 'disabled="disabled"'
+            }
+            //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']] : '') + '"/>')
+                '<textarea type="text" ' + inputAttr + ' class="form-control disabled" lang="' + obj['lang'] + '">' + (lw_data[langKey][obj['lang']] ? lw_data[langKey][obj['lang']] : '') + '</textarea>')
+            //html_per += ('<label for="InputLangArea">' + obj['lang'] + ':</label>' +
+            //    '<input type="text" ' + inputAttr + ' class="form-control disabled" lang="' + obj['lang'] + '" value="' + (lw_data[langKey][obj['lang']] ? lw_data[langKey][obj['lang']] : '') + '"/>')
         });
         // console.log(html_per)
         $('#edit_model_form').html(html_per)
@@ -494,7 +504,13 @@
         post_data['word_key'] = $('#lang_key_edit').val()
         post_data['old_word_key'] = $('#lang_key_edit').attr('oldkey')
         post_data['word_arr'] = {}
-        $('#edit_model_form').find('input').each(function () {
+        // $('#edit_model_form').find('input').each(function () {
+        //   let langArea = $(this).attr('lang')
+        // if (langArea) {
+        //   post_data['word_arr'][langArea] = $(this).val()
+        //}
+        //})
+        $('#edit_model_form').find('textarea').each(function () {
             let langArea = $(this).attr('lang')
             if (langArea) {
                 post_data['word_arr'][langArea] = $(this).val()

+ 2 - 0
web/js/jqhttpsdk.js

@@ -13,6 +13,8 @@ var http_ip_prot = convertTemp()+ "/";
 	if( http_ip_prot.indexOf("zositech")==-1){
 		http_ip_prot="http://192.168.136.39:8000/";
     	http_ip_prot = 'http://47.107.129.126:7724/';
+    	// http_ip_prot = 'http://192.168.136.40:7724/';
+    	// let http_ip_prot = 'http://192.168.136.40:7724/';
 		console.log(http_ip_prot);
 	}else{
 		console.log(http_ip_prot);

+ 21 - 7
web/userTab.html

@@ -256,10 +256,11 @@
         $('#modal-container-edit').modal('show')
         let user_lang_arr
         let html_edit = '<label for="editDataInput" class="form-group">用户名:</label>'
-
+        let user_lang_perm
         $.each(index_data, function (idx, obj) {
             if (id == obj['id']) {
                 user_lang_arr = obj['lang_arr']
+                user_lang_perm = obj['lp_arr']
                 html_edit += '<input type="text" class="form-control" id="editDataInput" value="' + obj['username'] + '" lid="' + id + '">'
                 html_edit += '<label for="editDataRole" class="form-group">角色:</label>'
                 html_edit += '<input type="text" class="form-control" id="editDataRole" value="' + obj['role_id'] + '" lid="' + id + '">'
@@ -268,9 +269,10 @@
 
 
 
-        html_edit += '<hr><span class="form-group">显示语言:</span>';
+        html_edit += '<hr><span class="form-group">显示语言:</span><span class="float-right">可否编辑</span>';
         $.each(lang_data, function (idx, obj) {
             let checkbox_val=''
+            let check_perm_val=''
             if(user_lang_arr){
                 let check_flag = $.inArray(obj['lang'],user_lang_arr)
                 console.log(check_flag)
@@ -278,27 +280,39 @@
                     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>')
+            if(user_lang_perm){
+                let check_perm_flag = $.inArray(obj['lang'],user_lang_perm)
+                console.log(check_perm_flag)
+                if(check_perm_flag>=0){
+                    check_perm_val+='checked="checked"'
+                }
+            }
+            html_edit += ('<label class="form-control"><input name="langsetname" type="checkbox" '+checkbox_val+' aria-label="Checkbox for following text input" value="' + obj['id'] + '">' + obj['lang'] + '<input name="langpermname" type="checkbox" '+check_perm_val+' aria-label="Checkbox for following text input" class="float-right" value="' + obj['id'] + '"></label>')
         })
-        console.log(user_lang_arr)
+        //console.log(user_lang_arr)
 
         $('#edit_model_form').html(html_edit)
     }
 
     function editRow() {
         let sub_lang_arr = []
-        $.each($('input:checkbox:checked'), function () {
+        let sub_perm_arr = []
+        $.each($('input[name="langsetname"]:checked'), function () {
             sub_lang_arr.push($(this).val())
         });
+        $.each($('input[name="langpermname"]:checked'), function () {
+            sub_perm_arr.push($(this).val())
+        });
         console.log('--------')
-        console.log(sub_lang_arr)
+        console.log(sub_perm_arr)
         console.log('--------')
         let post_data = {
             'token': $.cookie('access_token'),
             'id': $('#editDataInput').attr('lid'),
             'username': $('#editDataInput').val(),
             'role_id': $('#editDataRole').val(),
-            'langSetArr': sub_lang_arr
+            'langSetArr': sub_lang_arr,
+            'langPermArr':sub_perm_arr,
         }
         console.log(post_data)
         $.postJSON(