Przeglądaj źródła

添加颜色状态

tanghongbin 5 lat temu
rodzic
commit
a5fba208d2
5 zmienionych plików z 117 dodań i 26 usunięć
  1. 53 11
      controller/LangWord.py
  2. 1 0
      controller/User.py
  3. 7 0
      model/models.py
  4. 55 14
      web/index.html
  5. 1 1
      web/login.html

+ 53 - 11
controller/LangWord.py

@@ -20,10 +20,10 @@ 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, LangKeyModel, LangValModel
+from model.models import UserModel, LangSetModel, LangAreaModel, LangKeyModel, LangValModel, LangPermModel
 import time
 from object.TokenObject import TokenObject
-
+from django.db.models import Q
 
 class LangWordView(TemplateView):
     def post(self, request, *args, **kwargs):
@@ -59,6 +59,8 @@ class LangWordView(TemplateView):
             # search index table
             elif operation == 'query':
                 return self.do_query(request_dict, response, userID)
+            elif operation == 'reset':
+                return self.do_reset(request_dict, response, userID)
             else:
                 return response.json(414)
         else:
@@ -83,7 +85,7 @@ class LangWordView(TemplateView):
             lk = LangKeyModel.objects.create(**lang_key_dict)
             for w in word_arr:
                 LangValModel.objects.create(la_id=w['la_id'], lk_id=lk.id, addTime=nowTime, updTime=nowTime,
-                                            word_val=w['val'])
+                                            word_val=w['val'], status=1)
 
         except Exception as e:
             print(repr(e))
@@ -107,6 +109,7 @@ class LangWordView(TemplateView):
         old_word_key = request_dict.get('old_word_key', None)
         word_key = request_dict.get('word_key', None)
         word_arr = request_dict.get('word_arr', None)
+        status = request_dict.get('status', 0)
         # from var_dump import var_dump
         # var_dump(request_dict)
         lk = LangKeyModel.objects.filter(word_key=old_word_key)
@@ -119,16 +122,24 @@ class LangWordView(TemplateView):
                     lk.update(word_key=word_key, updTime=nowTime)
             else:
                 lk.update(updTime=nowTime)
+            #如果是管理员,是status的值为1,表示记录为新增
+            user = UserModel.objects.get(id=userID)
+            lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
+            lang_perm_ls = list(lang_perm_ql)
+            print(lang_perm_ls)
+
+            if user.role_id == 'admin':
+                status = 1
             for w in word_arr:
                 lv_qs = LangValModel.objects.filter(lk__id=lk_id, la__lang=w)
-                if lv_qs.exists():
-                    lv_qs.update(updTime=nowTime, word_val=word_arr[w])
+                if lv_qs.exists() and w in lang_perm_ql:
+                    lv_qs.update(updTime=nowTime, word_val=word_arr[w], status=status)
                 else:
                     la_qs = LangAreaModel.objects.filter(lang=w)
                     if la_qs.exists():
                         la_id = la_qs[0].id
                         LangValModel.objects.create(la_id=la_id, lk_id=lk_id, addTime=nowTime, updTime=nowTime,
-                                                    word_val=word_arr[w])
+                                                    word_val=word_arr[w], status=status)
             return response.json(0)
         else:
             return response.json(404)
@@ -169,9 +180,7 @@ 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":
+            if orderByupdate == 1:
                 lk_qs = lk_qs.order_by('updTime')
             else:
                 lk_qs = lk_qs.order_by('-updTime')
@@ -182,9 +191,18 @@ class LangWordView(TemplateView):
                 k_list.append(lk['word_key'])
                 lw_dict[lk['word_key']] = {'updTime': lk['updTime']}
             lv_qs = LangValModel.objects.filter(lk__word_key__in=k_list, la__id__in=lang_set_list). \
-                values('word_val', 'la__id', 'la__lang', 'lk__word_key', 'lk__id')
+                values('word_val', 'la__id', 'la__lang', 'lk__word_key', 'lk__id', 'status')
+            user = UserModel.objects.get(id=userID)
+            lang_perm_ql = LangPermModel.objects.filter(user__id=userID).values_list('lang__lang', flat=True)
+            lang_perm_ls = list(lang_perm_ql)
             for lv in lv_qs:
-                lw_dict[lv['lk__word_key']][lv['la__lang']] = lv['word_val']
+                lang = lv['la__lang']
+                # print('lang=%s' % lang)
+                lw_dict[lv['lk__word_key']][lang] = lv['word_val']
+                if user.role_id == 'admin':
+                    lw_dict[lv['lk__word_key']]['status'] = 0
+                elif lang in lang_perm_ls:
+                    lw_dict[lv['lk__word_key']]['status'] = lv['status']
             res = {
                 'la_list': list(la_qs),
                 'lw_dict': lw_dict,
@@ -195,3 +213,27 @@ class LangWordView(TemplateView):
             return response.json(0, res)
         else:
             return response.json(444, 'page,line')
+
+    def do_reset(self, request_dict, response, userID):
+
+        word_key = request_dict.get('word_key', None)
+        if word_key:
+            word_key_list = word_key.split(',')
+
+            #获取该用户可以修改的语种
+            lp_qs = LangPermModel.objects.filter(user_id=userID).values_list('lang__id')
+            lq_list = list(lp_qs)
+            # ls_qs = LangSetModel.objects.filter(user_id=userID, lang_id__in=lq_list).values_list('lang__id')
+            # ls_list = list(ls_qs)
+            lk = LangKeyModel.objects.filter(word_key__in=word_key_list).values_list('id')
+            lv_qs = LangValModel.objects.filter(Q(lk_id__in=lk) & ~Q(status=0) & Q(la_id__in=lq_list))
+            print(lv_qs.values())
+            if lv_qs.exists():
+                lv_qs.update(status=0)
+                return response.json(0)
+            else:
+                return response.json(404)
+        else:
+            return response.json(404)
+
+

+ 1 - 0
controller/User.py

@@ -82,6 +82,7 @@ class loginView(TemplateView):
                 tko = TokenObject()
                 res = tko.generate({'userID': user_qs[0].id})
                 res['role_id'] = user_qs[0].role_id
+                res['role_type'] = user_qs[0].role_type
 
                 return response.json(0, res)
             else:

+ 7 - 0
model/models.py

@@ -10,6 +10,7 @@ class UserModel(models.Model):
     role_id = models.CharField(max_length=64, default='', verbose_name='角色')
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)
+    role_type = models.IntegerField(verbose_name='角色类型', default=0)
 
     class Meta:
         ordering = ('-addTime',)
@@ -67,6 +68,7 @@ class LangValModel(models.Model):
     word_val = models.CharField(default='', max_length=64, verbose_name='词汇v')
     addTime = models.IntegerField(default=0, verbose_name='添加时间')
     updTime = models.IntegerField(default=0, verbose_name='更新时间')
+    status = models.IntegerField(default=0, verbose_name='编辑状态') #0:重置后;1:新增;2:编辑后
 
     class Meta:
         ordering = ('-addTime',)
@@ -122,10 +124,12 @@ class skuSuitModel(models.Model):
     suitName = models.CharField(default='', verbose_name='套装名称', max_length=64)
     addTime = models.IntegerField(default=0, verbose_name='添加时间')
     updTime = models.IntegerField(default=0, verbose_name='更新时间')
+
     class Meta:
         ordering = ('-id',)
         verbose_name = 'sku套装名称表'
         db_table = 'sku_suit_name'
+
 # sku规则名称表
 class skuRuleModel(models.Model):
     id = models.AutoField(primary_key=True)
@@ -133,10 +137,12 @@ class skuRuleModel(models.Model):
     ruleName = models.CharField(default='', verbose_name='规则名称', max_length=64)
     addTime = models.IntegerField(default=0, verbose_name='添加时间')
     updTime = models.IntegerField(default=0, verbose_name='更新时间')
+
     class Meta:
         ordering = ('-id',)
         verbose_name = 'sku规则名称表'
         db_table = 'sku_rule_name'
+
 #sku 条件表
 class skuConditionModel(models.Model):
     id = models.AutoField(primary_key=True)
@@ -145,6 +151,7 @@ class skuConditionModel(models.Model):
     conditionName = models.CharField(default='', verbose_name='条件名称', max_length=64)
     addTime = models.IntegerField(default=0, verbose_name='添加时间')
     updTime = models.IntegerField(default=0, verbose_name='更新时间')
+
     class Meta:
         ordering = ('-id',)
         verbose_name = 'sku条件表'

+ 55 - 14
web/index.html

@@ -74,6 +74,7 @@
 
     <!-- tab-top-bar -->
     <div class="top-bar">
+        <input type="button" value="reset" onclick="onReset()">
         <ul>
             <li>
                 <a href="login.html" title="Log Out">
@@ -182,15 +183,12 @@
 </div>
 
 <script type="text/javascript">
-    var orderByupdate=$.cookie('orderByupdate');
-    if(orderByupdate!=1){
-        setCookie('orderByupdate', 0, 1000)
-    }
-    console.log("11111111orderByupdate"+orderByupdate);
+    var orderByupdate = 0
     var page = 1
     var line = 10
     var initData
     var IndexFlat = 0
+
     $(function () {
         toastr.options = {
             "closeButton": true,
@@ -228,11 +226,7 @@
         } else {
             orderByupdate = 1
         }
-        setCookie('orderByupdate', orderByupdate, 1000)
-        orderByupdate=$.cookie('orderByupdate');
-        console.log("orderByupdate------------"+orderByupdate)
         var page = GetUrlParam('page')
-        console.log("page----------------"+page)
         if (!page) {
             page = 1
         }
@@ -240,13 +234,14 @@
             'token': $.cookie('access_token'),
             'page': page,
             'line': 10,
-            'orderByupdate': orderByupdate
+            'orderByupdate': orderByupdate,
+
         };
         InitIndex(post_data)
-        window.location.reload(); //刷新当前页面.
     }
 
     function InitIndex(post_data) {
+
         $.postJSON(
             http_ip_prot + 'langWord/query', JSON.stringify(post_data),
             function (data) {
@@ -261,8 +256,10 @@
                         edges: 2,
                         cssStyle: 'pagination', //按纽大小pagination-lg或写入自定义css
                         displayedPages: 5, //显示几个
+                        currentPage: GetUrlParam('page'),
                         onPageClick: function (pageNumber, event) {
                             //点击时调用
+                            // alert(pageNumber);
                             queryData(pageNumber)
                         },
                         onInit: function (getid) {
@@ -297,7 +294,6 @@
     let lw_data
 
     function queryData(page) {
-        console.log("----------"+page) ;
         let searchKey = $('input[name="optionsRadios"]:checked').val();
         let searchVal = $('#searchInput').val()
         var post_data = {}
@@ -363,8 +359,15 @@
             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 = '';
-            body_html += '<tr><td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td>';
-            body_html += ('<td>' + idx + '</td>');
+            if(obj['status'] == 1){
+                body_html += '<tr style="background: red; color: white"><td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td>';
+            }else if(obj['status'] == 2){
+                body_html += '<tr style="background: blue; color: white"><td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td>';
+            }else{
+                body_html += '<tr><td>' + edit_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td>';
+            }
+
+            body_html += ('<td id="key">' + idx + '</td>');
 
             $.each(la_list, function (x, y) {
                 if (obj[y['lang']]) {
@@ -409,6 +412,7 @@
     }
 
     function addSaveFunc() {
+
         $(".save_row").bind("click", function () {
             let post_data = {
                 'token': $.cookie('access_token')
@@ -508,10 +512,12 @@
     }*/
     function editRow() {
         let post_data = {}
+
         post_data['token'] = $.cookie('access_token')
         post_data['word_key'] = $('#lang_key_edit').val()
         post_data['old_word_key'] = $('#lang_key_edit').attr('oldkey')
         post_data['word_arr'] = {}
+        post_data['status'] = 2
         // $('#edit_model_form').find('input').each(function () {
         //   let langArea = $(this).attr('lang')
         // if (langArea) {
@@ -547,6 +553,7 @@
 
     function IndexTable() {
         var page = GetUrlParam('page')
+
         if (!page) {
             page = 1
         }
@@ -601,6 +608,40 @@
         }
         InitIndex(post_data)
     }
+
+    function onReset() {
+        let role = $.cookie('role');
+        if(role == 1){
+            if(!confirm("如果你重置了语言状态,别的翻译者将无法查看到语言的相应状态!")){
+                return;
+            }
+        }
+        let post_data = {}
+        var word_key = '';
+        let table = $('#langTableBody').find('tr').each(function () {
+            var value = $(this).find('td:eq(1)').text();
+            word_key += value;
+            word_key += ',';
+        })
+        word_key = word_key.substr(0, word_key.length - 1);
+        post_data['word_key'] = word_key;
+        post_data['token'] = $.cookie('access_token');
+        $.postJSON(
+            http_ip_prot + 'langWord/reset', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    // console.log(data['res'])
+                    console.log(data)
+                    toastr["success"](data['msg'])
+                    IndexTable()
+                    //window.location.reload();
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        )
+
+    }
 </script>
 </body>
 </html>

+ 1 - 1
web/login.html

@@ -201,7 +201,7 @@
                     if (username == 'saler') {
                         window.location.href = "http://" + domain + ":7724/web/imgTab.html";
                     } else {
-                        window.location.href = "http://" + domain + ":7724/web/index.html";
+                        window.location.href = "http://" + domain + ":7724/web/index.html?page=1";
                     }
 
                 } else {