Преглед изворни кода

添加ZosiLink的多语言

tanghongbin пре 5 година
родитељ
комит
d377923a9c
7 измењених фајлова са 699 додато и 14 уклоњено
  1. 4 2
      controller/LangArea.py
  2. 15 11
      controller/LangWord.py
  3. 3 0
      web/avss_index.html
  4. 3 0
      web/index.html
  5. 11 1
      web/langTab.html
  6. 3 0
      web/userTab.html
  7. 660 0
      web/zosi_link_index.html

+ 4 - 2
controller/LangArea.py

@@ -121,6 +121,8 @@ class LangAreaView(TemplateView):
         langType = (0, 2)
         if type == 'avss':
             langType = (1, 2)
+        elif type == 'link_ios' or type == 'link_android':
+            langType = (3,)
 
         en_qs = LangKeyModel.objects.filter(langvalmodel__la__id=20, type__in=langType).values('word_key', 'langvalmodel__word_val')
         en_kv = {}
@@ -128,7 +130,7 @@ class LangAreaView(TemplateView):
             en_kv[e['word_key']] = e['langvalmodel__word_val']
 
         content = ''
-        if type == 'ios':
+        if type == 'ios' or type == 'link_ios':
             res_qs = LangKeyModel.objects.filter(langvalmodel__la__id=id, type__in=langType).\
                 values('word_key', 'langvalmodel__word_val')
             res = {}
@@ -141,7 +143,7 @@ class LangAreaView(TemplateView):
             for l in res:
                 content_val = res[l].replace('"', '\'')
                 content = content + '"' + l + '"="' + content_val + '";\n'
-        elif type == 'android':
+        elif type == 'android' or type == 'link_android':
             res_qs = LangKeyModel.objects.filter(langvalmodel__la__id=id, type__in=langType).\
                 values('word_key', 'langvalmodel__word_val').order_by('addTime')
             res = {}

+ 15 - 11
controller/LangWord.py

@@ -69,11 +69,13 @@ class LangWordView(TemplateView):
     def do_add(self, request_dict, response):
         word_key = request_dict.get('word_key', None)
         word_arr = request_dict.get('word_arr', None)
+        word_key_type = request_dict.get('word_key_type', 0)
         nowTime = int(time.time())
         lang_key_dict = {
             'word_key': word_key,
             'addTime': nowTime,
-            'updTime': nowTime
+            'updTime': nowTime,
+            'type': word_key_type
         }
         try:
             # var_dump(lang_key_dict)
@@ -170,7 +172,7 @@ class LangWordView(TemplateView):
         line = int(request_dict.get('line', None))
         searchKey = request_dict.get('searchKey', None)
         searchVal = request_dict.get('searchVal', None)
-        langType = request_dict.get('langType', None)
+        langType = request_dict.get('langType', 0)
         if searchKey:
             searchKey = searchKey.strip()
         if searchVal:
@@ -181,21 +183,23 @@ class LangWordView(TemplateView):
             lang_set_list = list(lang_set_list)
             la_qs = LangAreaModel.objects.filter(id__in=lang_set_list).values('lang', 'id')
 
-            type_value = (0, 2)
             print(langType)
-            if langType:
-                tmpType = int(langType)
-                print(tmpType)
-                if tmpType == 1:
-                    type_value = (1, 2)
+            tmpType = int(langType)
+            print(tmpType)
+            if tmpType == 0:
+                lk_qs = LangKeyModel.objects.filter(type__in=(0, 2))
+                print(lk_qs)
+            elif tmpType == 1:
+                lk_qs = LangKeyModel.objects.filter(type__in=(1, 2))
+            elif tmpType == 2:
+                lk_qs = LangKeyModel.objects.filter(type=3)
 
-            lk_qs = LangKeyModel.objects.filter(type__in=type_value)
             if searchKey and searchVal:
                 if searchKey == 'key':
-                    lk_qs = lk_qs.filter(word_key__contains=searchVal, type__in=type_value)
+                    lk_qs = lk_qs.filter(word_key__contains=searchVal)
                     # lk_qs = lk_qs.filter(word_key=searchVal)
                 else:
-                    lk_qs = lk_qs.filter(langvalmodel__word_val__contains=searchVal, langvalmodel__la__lang=searchKey, type__in=type_value)
+                    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:

+ 3 - 0
web/avss_index.html

@@ -48,6 +48,9 @@
     <input type="radio" class="tab-5" name="tab" checked="checked">
     <span>AVSS</span><i class="fa fa-language"></i>
 
+    <input type="radio" class="tab-6" name="tab" onclick="location.href='zosi_link_index.html'">
+    <span>Zosi Link</span><i class="fa fa-language"></i>
+
     <input type="radio" class="tab-2" name="tab" onclick="location.href='langTab.html'">
     <span>Lang</span><i class="fa fa-medium"></i>
 

+ 3 - 0
web/index.html

@@ -48,6 +48,9 @@
     <input type="radio" class="tab-5" name="tab" onclick="location.href='avss_index.html'">
     <span>AVSS</span><i class="fa fa-language"></i>
 
+    <input type="radio" class="tab-6" name="tab" onclick="location.href='zosi_link_index.html'">
+    <span>Zosi Link</span><i class="fa fa-language"></i>
+
     <input type="radio" class="tab-2" name="tab" onclick="location.href='langTab.html'">
     <span>Lang</span><i class="fa fa-medium"></i>
 

+ 11 - 1
web/langTab.html

@@ -34,6 +34,9 @@
     <input type="radio" class="tab-5" name="tab" onclick="location.href='avss_index.html'">
     <span>AVSS</span><i class="fa fa-language"></i>
 
+    <input type="radio" class="tab-6" name="tab" onclick="location.href='zosi_link_index.html'">
+    <span>Zosi Link</span><i class="fa fa-language"></i>
+
     <input type="radio" class="tab-2" name="tab" checked="checked">
     <span>Lang</span><i class="fa fa-medium"></i>
 
@@ -179,8 +182,11 @@
             let idw_btn = 'IOS:<a href="#" title="ios" onclick="dlFunc(\'' + obj['id'] + '\',1)"><i class="fa fa-download"></i></a>';
             let adw_btn = '安卓:<a href="#" title="android" onclick="dlFunc(\'' + obj['id'] + '\',2)"><i class="fa fa-download"></i></a>';
             let avssw_btn = 'AVSS:<a href="#" title="avss" onclick="dlFunc(\'' + obj['id'] + '\',3)"><i class="fa fa-download"></i></a>';
+            let link_ios_tbn = 'Link IOS:<a href="#" title="zosi_link_ios" onclick="dlFunc(\'' + obj['id'] + '\',4)"><i class="fa fa-download"></i></a>';
+            let link_android_btn = 'Link 安卓:<a href="#" title="zosi_link_android" onclick="dlFunc(\'' + obj['id'] + '\',5)"><i class="fa fa-download"></i></a>';
             let np = '&nbsp;&nbsp;&nbsp;'
-            body_html += '<tr><td>' + obj['id'] + '</td><td>' + obj['lang'] + '</td><td>' + edit_btn + np + del_btn + np + idw_btn + np + adw_btn + np + avssw_btn +'</td></tr>'
+            body_html += '<tr><td>' + obj['id'] + '</td><td>' + obj['lang'] + '</td><td>' + edit_btn + np + del_btn
+                + np + idw_btn + np + adw_btn + np + avssw_btn + np + link_ios_tbn + np + link_android_btn +'</td></tr>'
         })
         $('#tabLangBody').html(body_html)
     }
@@ -286,6 +292,10 @@
             post_type = 'android'
         }else if(type == 3){
             post_type = 'avss'
+        }else if(type == 4){
+            post_type = 'link_ios'
+        }else if(type == 5){
+            post_type = 'link_android'
         }
         let post_data = {
             'token': $.cookie('access_token'),

+ 3 - 0
web/userTab.html

@@ -34,6 +34,9 @@
     <input type="radio" class="tab-5" name="tab" onclick="location.href='avss_index.html'">
     <span>AVSS</span><i class="fa fa-language"></i>
 
+    <input type="radio" class="tab-6" name="tab" onclick="location.href='zosi_link_index.html'">
+    <span>Zosi Link</span><i class="fa fa-language"></i>
+
     <input type="radio" class="tab-2" name="tab" onclick="location.href='langTab.html'">
     <span>Lang</span><i class="fa fa-medium"></i>
 

+ 660 - 0
web/zosi_link_index.html

@@ -0,0 +1,660 @@
+<!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">
+    <link href="http://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.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>
+    <script src="js/datachange.js"></script>
+    <script src="http://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js" type="text/javascript"></script>
+    <style>
+        td {
+            white-space: nowrap;
+        }
+        #in_button:hover{
+            background: black;
+            color: white;
+        }
+    </style>
+</head>
+<body>
+<div class="clear-backend">
+    <div class="avatar">
+        <div>
+            <a href="javascript:void(0);" target="_blank">
+                <img src="img/admin.png" alt="">
+            </a>
+        </div>
+    </div>
+
+    <!-- tab-menu -->
+    <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-5" name="tab" onclick="location.href='avss_index.html'">
+    <span>AVSS</span><i class="fa fa-language"></i>
+
+    <input type="radio" class="tab-6" name="tab" checked="checked">
+    <span>Zosi Link</span><i class="fa fa-language"></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" onclick="location.href='userTab.html'">
+    <span>Users</span><i class="fa fa-user"></i>
+
+    <input type="radio" class="tab-4" name="tab" onclick="location.href='imgTab.html'">
+    <span>Azimg</span><i class="fa fa-image"></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-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-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>-->
+
+    <!-- tab-top-bar -->
+    <center class="top-bar">
+        <input id="in_button" type="button" value="reset" style="border: 1px solid #e6cdcd; height: 60px; width: 100px;" onclick="onReset()">
+        <ul>
+            <li>
+                <a href="login.html" 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>
+    </center>
+
+    <!-- tab-content -->
+    <div class="tab-content" style="overflow: auto">
+        <section class="tab-item-1" style="height: 100%;width: 100%;display: block">
+            <div class="container-fluid">
+                <div class="row">
+                    <div id="searchCheckBox" class="col-md-8"></div>
+                    <div class="col-md-4">
+                        <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>
+            <div class="container-fluid">
+                <div class="row">
+                    <!--add-->
+                    <div class="col-md-12">
+                        <table class="table table-bordered table-hover">
+                            <thead id="langTableHead"></thead>
+                            <tbody id="langTableBody"></tbody>
+                        </table>
+                    </div>
+                </div>
+                <div id="pagination"></div>
+
+            </div>
+
+
+            <!---->
+            <div class="container-fluid">
+                <div class="row">
+                    <div class="col-md-12">
+                        <div class="modal fade" id="modal-container-593541" 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">
+                                            <!--<label for="InputLangArea">-->
+                                            <!--langArea-->
+                                            <!--</label>-->
+                                            <!--<input type="text" class="form-control" id="InputLangArea"/>-->
+                                        </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>
+
+            <!---->
+        </section>
+        <section class="tab-item-2">
+            <div class="container-fluid">
+                <div class="row">
+                    <div class="col-md-12">
+                    </div>
+                </div>
+            </div>
+        </section>
+    </div>
+</div>
+
+<script type="text/javascript">
+    var orderByupdate = 0
+    var page = 1
+    var line = 10
+    var initData
+    var IndexFlat = 0
+
+    $(function () {
+        toastr.options = {
+            "closeButton": true,
+            "debug": false,
+            "newestOnTop": false,
+            "progressBar": true,
+            "positionClass": "toast-top-right",
+            "preventDuplicates": false,
+            "onclick": null,
+            "showDuration": "300",
+            "hideDuration": "500",
+            "timeOut": "5000",
+            "extendedTimeOut": "1000",
+            "showEasing": "swing",
+            "hideEasing": "linear",
+            "showMethod": "fadeIn",
+            "hideMethod": "fadeOut"
+        }
+        var page = GetUrlParam('page')
+        if (!page) {
+            page = 1
+        }
+        let post_data = {
+            'token': $.cookie('access_token'),
+            'page': page,
+            'line': line,
+            'orderByupdate': orderByupdate,
+            'langType': 2
+        };
+        InitIndex(post_data)
+    });
+
+    function orderByUpdateTimeFunc(status) {
+        if (status === 1) {
+            orderByupdate = 0
+        } else {
+            orderByupdate = 1
+        }
+        var page = GetUrlParam('page')
+        if (!page) {
+            page = 1
+        }
+        let post_data = {
+            'token': $.cookie('access_token'),
+            'page': page,
+            'line': 10,
+            'orderByupdate': orderByupdate,
+            'langType': 2,
+        };
+        InitIndex(post_data)
+    }
+
+    function InitIndex(post_data) {
+        $.postJSON(
+            http_ip_prot + 'langWord/query', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    // console.log(data['res'])
+                    console.log(data)
+                    addTable(data['res'])
+                    let count_page = Math.ceil(data['res']['count'] / line)
+                    $('#pagination').pagination({
+                        pages: count_page, //总页数
+                        // pages: 10000, //总页数
+                        edges: 2,
+                        cssStyle: 'pagination', //按纽大小pagination-lg或写入自定义css
+                        displayedPages: 5, //显示几个
+                        currentPage: GetUrlParam('page'),
+                        onPageClick: function (pageNumber, event) {
+                            //点击时调用
+                            // alert(pageNumber);
+                            queryData(pageNumber)
+                        },
+                        onInit: function (getid) {
+                            //刷新时或初始化调用
+                            // alert(getid);
+                        }
+                    });
+                } else {
+                    window.location.href = "http://" + domain + ":7724/web/login.html";
+                    alert(data['msg'])
+                }
+            }
+        );
+
+        $.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
+    let lw_data
+
+    function queryData(page) {
+        let searchKey = $('input[name="optionsRadios"]:checked').val();
+        let searchVal = $('#searchInput').val()
+        var post_data = {}
+        if (searchVal) {
+            post_data = {
+                'token': $.cookie('access_token'),
+                'page': page,
+                'line': 10,
+                'orderByupdate': orderByupdate,
+                'searchKey': searchKey,
+                'searchVal': searchVal,
+                'langType': 2
+            };
+        } else {
+            post_data = {
+                'token': $.cookie('access_token'),
+                'page': page,
+                'line': 10,
+                'orderByupdate': orderByupdate,
+                'langType': 2,
+            };
+        }
+
+        $.postJSON(
+            http_ip_prot + 'langWord/query', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    // console.log(data['res'])
+                    console.log(data)
+                    addTable(data['res'])
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
+    }
+
+    function addTable(data) {
+        //头部多区域语言
+        let head_data = data['la_list'];
+        la_list = head_data
+        // body部详细语言
+        let body_data = data['lw_dict'];
+        lw_data = body_data
+        let head_html = '<tr><th width="180px"><a href="javascript:void(0);" onclick="addRow()">add</a></th><th>key</th>';
+        let search_tab = '<label><input type="radio" name="optionsRadios" value="key" checked>key</label>'
+
+        //头部标签添加
+
+        $.each(head_data.reverse(), function (idx, obj) {
+            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><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>';
+        if (IndexFlat == 0) {
+            $('#searchCheckBox').html(search_tab)
+            IndexFlat = 1
+        }
+        let body_html = '';
+
+        console.log('--------');
+        $.each(body_data, function (idx, obj) {
+            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 = '';
+            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']]) {
+                    body_html += ('<td>' + obj[y['lang']] + '</td>')
+                } else {
+                    body_html += ('<td></td>')
+                }
+            });
+            let updTime = $.DateChange.UnixToDate(obj['updTime'], true, 8);
+            body_html += ('<td>' + updTime + '<span class="arrow dsc"></td></tr>');
+        });
+        $('#langTableHead').empty().html(head_html);
+        $('#langTableBody').empty().html(body_html);
+        addDelFunc()
+    }
+
+    function addRow() {
+        let save_btn = '<a href="javascript:void(0);" title="Save" class="save_row"><i class="fa fa-check-circle-o"></i></a>';
+        let del_btn = '<a href="javascript:void(0);" title="Delete" class="del_row"><i class="fa fa-ban"></i></a>';
+
+        let newRow = '<tr><td>' + save_btn + '&nbsp;&nbsp;&nbsp;' + del_btn + '</td><td><input class="form-control" type="text" langID="key" id="newRow_key"></td>'
+        $.each(la_list, function (idx, obj) {
+            // console.log(idx)
+            // newRow += ('<td>' + obj['id'] + '</td>')
+            newRow += ('<td>' +
+                '<input class="form-control" type="text" langID="' + obj['id'] + '" id="newRow_lang_' + obj['id'] + '">' +
+                '</td>')
+        })
+
+        newRow += '<td></td></tr>'
+        $('#langTableBody').prepend(newRow)
+        addDelFunc()
+        addSaveFunc()
+    }
+
+    function addDelFunc() {
+        $(".del_row").bind("click", function () {
+            let trRow = $(this).parent().parent()
+            trRow.remove()
+        });
+    }
+
+    function addSaveFunc() {
+
+        $(".save_row").bind("click", function () {
+            let post_data = {
+                'token': $.cookie('access_token')
+            }
+            let post_list = []
+            let trRow = $(this).parent().parent()
+            trRow.find('input').each(function () {
+                // console.log($(this).attr('id'))
+                // console.log($(this).attr('langID'))
+                let inputVal = $(this).val()
+                let langID = $(this).attr('langID')
+                if (langID === 'key') {
+                    post_data['word_key'] = inputVal
+                } else {
+                    post_list.push({'la_id': langID, 'val': inputVal})
+                }
+            })
+            post_data['word_arr'] = post_list
+            post_data['word_key_type'] = 3
+            console.log(post_data)
+            $.postJSON(
+                http_ip_prot + 'langWord/add', JSON.stringify(post_data),
+                function (data) {
+                    if (data['code'] == 0) {
+                        // console.log(data['res'])
+                        window.location.reload();
+                        console.log(data)
+                    } else {
+                        alert(data['msg'])
+                    }
+                }
+            )
+        })
+    }
+
+
+    // 编辑模态框
+    function editFunc($this) {
+
+        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" ' + (user_perm == 1 ? '' : 'disabled="disabled"') + ' type="text" id="lang_key_edit" oldkey="' + langKey + '" value="' + langKey + '"> '
+        $.each(la_list, function (idx, 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>' +
+                '<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)
+    }
+
+    function deleteFunc($this) {
+        let langKey = $($this).parent().parent().children().eq(1).text()
+
+        var r = confirm("Press a button")
+        if (r) {
+            let post_data = {
+                'token': $.cookie('access_token'),
+                'word_key': langKey
+            }
+            console.log(post_data)
+            $.postJSON(
+                http_ip_prot + 'avss/delete', JSON.stringify(post_data),
+                function (data) {
+                    if (data['code'] == 0) {
+                        // console.log(data['res'])
+                        console.log(data);
+                        alert(data['msg']);
+                        window.location.reload();
+                    } else {
+                        alert(data['msg'])
+                    }
+                }
+            )
+        }
+    }
+
+    /*post_data = {
+        word_key_id:1,
+        word_key:xxx,
+        word_arr:[
+            {'lang':'','val':''},
+            {'lang':'','val':''},
+            {'lang':'','val':''}
+        ]
+    }*/
+    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) {
+        //   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()
+            }
+        })
+        console.log(post_data)
+        $.postJSON(
+            http_ip_prot + 'langWord/update', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    // console.log(data['res'])
+                    console.log(data)
+                    toastr["success"](data['msg'])
+                    $('#modal-container-593541').modal('hide')
+                    IndexTable()
+                    //window.location.reload();
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        )
+        // $('.editRowSaveBtn').bind('click', function () {
+        //     console.log('adjslkfjsdalkfj')
+        // })
+    }
+
+    function IndexTable() {
+        var page = GetUrlParam('page')
+
+        if (!page) {
+            page = 1
+        }
+        let post_data = {
+            'token': $.cookie('access_token'),
+            'page': page,
+            'line': line,
+            'orderByupdate': orderByupdate,
+            'langType': 2,
+        };
+
+        $.postJSON(
+            http_ip_prot + 'langWord/query', JSON.stringify(post_data),
+            function (data) {
+                if (data['code'] == 0) {
+                    // console.log(data['res'])
+                    console.log(data)
+                    addTable(data['res'])
+                    let count_page = Math.ceil(data['res']['count'] / line)
+                    queryData(page)
+                } else {
+                    alert(data['msg'])
+                }
+            }
+        );
+    }
+
+    function searchKeyAction() {
+        var page = GetUrlParam('page')
+        if (!page) {
+            page = 1
+        }
+        let searchKey = $('input[name="optionsRadios"]:checked').val();
+        let searchVal = $('#searchInput').val()
+        console.log('-------------------------------')
+        console.log(searchKey)
+        console.log(searchVal)
+        console.log('-------------------------------')
+        let post_data = {}
+        if (searchVal && searchKey) {
+            post_data = {
+                'token': $.cookie('access_token'),
+                'page': page,
+                'line': 10,
+                'searchKey': searchKey,
+                'searchVal': searchVal
+            };
+        } else {
+            post_data = {
+                'token': $.cookie('access_token'),
+                'page': page,
+                'line': 10,
+            };
+        }
+        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 {
+                    toastr["error"](data['msg'])
+                }
+            }
+        )
+
+    }
+</script>
+</body>
+</html>