wushaodong 4 jaren geleden
bovenliggende
commit
b627576953
3 gewijzigde bestanden met toevoegingen van 163 en 133 verwijderingen
  1. 9 2
      apps/account/views.py
  2. 153 130
      uis/views/account/login.html
  3. 1 1
      uis/views/account/user_password.html

+ 9 - 2
apps/account/views.py

@@ -56,7 +56,14 @@ class RefreshTokenView(RefreshJSONWebToken):
                 if store and (store.enable == False or (store.end_date.strftime('%Y-%m-%d')) < (
                 timezone.now().strftime('%Y-%m-%d')) ):
                     raise CustomError(u'当前店面不可用,请联系管理员!')
-                return response_ok({'token': ser.validated_data['token']})
+                permissions = list(user.get_all_permissions())
+                return response_ok({
+                    'token': ser.validated_data['token'],
+                    'user_id': user.id,
+                    'username': user.username,
+                    'permissions': permissions,
+                    'manager_stores': len(user.get_manager_range()),
+                })
         except ValidationError as e:
             return response_ok({'error':True})
         except CustomError as e:
@@ -66,7 +73,7 @@ class ChangePassword(APIView):
 
     def post(self, request, *args, **kwargs):
         id = request.GET.get('id')
-        data = json.loads(request.body)
+        data = request.data
         try:
             with transaction.atomic():
                 user = User.objects.filter(id=id).first()

+ 153 - 130
uis/views/account/login.html

@@ -1,157 +1,180 @@
 <!DOCTYPE html>
 <html>
 <head>
-  <meta charset="utf-8">
-  <title>装集客管理系统</title>
-  <meta name="renderer" content="webkit">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
-  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
-  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
-  <link rel="stylesheet" href="../../layuiadmin/style/login.css" media="all">
-  <style>
-     .registerContent{
-         display: flex;
-         justify-content: space-between;
-         flex-direction: row;
-     }
-     .registerStyle{
-        font-size: 16px;
-        display: inline-block;
-        padding: 0 15px;
-        color: #009688;
-        cursor: pointer;
-     }
-     .registerStyle:hover{
-        text-decoration: underline #009688;
-        color: #009688;
-        cursor: pointer;
-     }
-  </style>
+    <meta charset="utf-8">
+    <title>装集客管理系统</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/login.css" media="all">
+    <style>
+        .registerContent {
+            display: flex;
+            justify-content: space-between;
+            flex-direction: row;
+        }
+
+        .registerStyle {
+            font-size: 16px;
+            display: inline-block;
+            padding: 0 15px;
+            color: #009688;
+            cursor: pointer;
+        }
+
+        .registerStyle:hover {
+            text-decoration: underline #009688;
+            color: #009688;
+            cursor: pointer;
+        }
+    </style>
 </head>
 <body>
 
-  <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
+<div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
 
     <div class="layadmin-user-login-main">
-      <div class="layadmin-user-login-box layadmin-user-login-header">
-        <h2>装集客管理系统</h2>
-      </div>
-      <form class="layui-form" action="" lay-filter="component-form-element">
-      <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
-        <div class="layui-form-item">
-          <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label>
-          <input type="text" name="username" id="LAY-user-login-username" placeholder="用户名" lay-verify="required" autocomplete="off" class="layui-input">
-        </div>
-        <div class="layui-form-item">
-          <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label>
-          <input type="password" name="password" id="LAY-user-login-password" autocomplete="off" lay-verify="required" placeholder="密码" class="layui-input">
-        </div>
-        <div class="layui-form-item">
-          <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="component-form-element">登 录</button>
+        <div class="layadmin-user-login-box layadmin-user-login-header">
+            <h2>装集客管理系统</h2>
         </div>
-        <div class="registerContent">
-             <a onclick="register('employee')" class="registerStyle">员工注册</a>
-             <a onclick="register('store')" class="registerStyle">门店注册</a>
-        </div>
-      </div>
-       </form>
+        <form class="layui-form" action="" lay-filter="component-form-element">
+            <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
+                <div class="layui-form-item">
+                    <label class="layadmin-user-login-icon layui-icon layui-icon-username"
+                           for="LAY-user-login-username"></label>
+                    <input type="text" name="username" id="LAY-user-login-username" placeholder="用户名"
+                           lay-verify="required" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-form-item">
+                    <label class="layadmin-user-login-icon layui-icon layui-icon-password"
+                           for="LAY-user-login-password"></label>
+                    <input type="password" name="password" id="LAY-user-login-password" autocomplete="off"
+                           lay-verify="required" placeholder="密码" class="layui-input">
+                </div>
+                <div class="layui-form-item">
+                    <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="component-form-element">登 录
+                    </button>
+                </div>
+                <div class="registerContent layui-hide">
+                    <a onclick="register('employee')" class="registerStyle">员工注册</a>
+                    <a onclick="register('store')" class="registerStyle">门店注册</a>
+                </div>
+            </div>
+        </form>
     </div>
 
     <div class="layui-trans layadmin-user-login-footer">
-      <p>© 2021 装集客管理系统 <a href="http://www.zzliaoyuan.com/" target="_blank">郑州燎原计算机技术有限公司</a></p>
+        <p>© 2021 装集客管理系统 <a href="http://www.zzliaoyuan.com/" target="_blank">郑州燎原计算机技术有限公司</a></p>
     </div>
 
-  </div>
-
-  <script src="../../layuiadmin/layui/layui.js"></script>
-  <script>
+</div>
 
-  function register(str){
-      // 员工注册
-      if(str === 'employee'){
-          location.href = './employee_register.html'; //后台主页
-      }else{
-      // 门店注册
-      }
-  }
+<script src="../../layuiadmin/layui/layui.js"></script>
+<script>
 
-  layui.config({
-    base: '../../layuiadmin/' //静态资源所在路径
-  }).extend({
-    index: 'lib/index' //主入口模块
-  }).use(['index', 'user'], function(){
-    var $ = layui.$
-    ,setter = layui.setter
-    ,admin = layui.admin
-    ,form = layui.form
-    ,router = layui.router()
-    ,search = router.search;
+    function register(str) {
+        // 员工注册
+        if (str === 'employee') {
+            location.href = './employee_register.html'; //后台主页
+        } else {
+            // 门店注册
+        }
+    }
 
-    if (layui.data(setter.tableName)[setter.request.tokenName]) {
-      admin.req({
-        url: '/account/token_refresh/'
-        ,data: {token: layui.data(setter.tableName)[setter.request.tokenName].substr(4)}
-        ,type: 'post'
-        ,done: function(res){
-          //请求成功后,写入 access_token
-          layui.data(setter.tableName, {
-            key: setter.request.tokenName
-            ,value: 'JWT ' + res.data.token
-          });
+    layui.config({
+        base: '../../layuiadmin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use(['index', 'user'], function () {
+        var $ = layui.$
+            , setter = layui.setter
+            , admin = layui.admin
+            , form = layui.form
+            , router = layui.router()
+            , search = router.search;
 
-          location.href = '../index.html'; //后台主页
+        if (layui.data(setter.tableName)[setter.request.tokenName]) {
+            admin.req({
+                url: '/account/token_refresh/'
+                , data: {token: layui.data(setter.tableName)[setter.request.tokenName].substr(4)}
+                , type: 'post'
+                , done: function (res) {
+                    //请求成功后,写入 access_token
+                    layui.data(setter.tableName, {
+                        key: setter.request.tokenName
+                        , value: 'JWT ' + res.data.token
+                    });
+                    layui.data(setter.tableName, {
+                        key: setter.request.userId
+                        , value: res.data.user_id
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'name'
+                        , value: res.data.username
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'permissions'
+                        , value: res.data.permissions
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'manager_stores'
+                        , value: res.data.manager_stores
+                    });
+                    location.href = '../index.html'; //后台主页
+                }
+            });
         }
-      });
-    }
 
-    form.render();
+        form.render();
 
-    //提交
-    form.on('submit(component-form-element)', function(obj){
+        //提交
+        form.on('submit(component-form-element)', function (obj) {
 
-      //请求登入接口
-      admin.req({
-        url: '/account/login/'
-        ,data: obj.field
-        ,type: 'post'
-        ,done: function(res){
-          //请求成功后,写入 access_token
-          layui.data(setter.tableName, {
-            key: setter.request.tokenName
-            ,value: 'JWT ' + res.data.token
-          });
-          layui.data(setter.tableName, {
-            key: setter.request.userId
-            ,value: res.data.user_id
-          });
-          layui.data(setter.tableName, {
-            key: 'name'
-            ,value: res.data.username
-          });
-          layui.data(setter.tableName, {
-            key: 'permissions'
-            ,value: res.data.permissions
-          });
-          layui.data(setter.tableName, {
-            key: 'manager_stores'
-            ,value: res.data.manager_stores
-          });
+            //请求登入接口
+            admin.req({
+                url: '/account/login/'
+                , data: obj.field
+                , type: 'post'
+                , done: function (res) {
+                    //请求成功后,写入 access_token
+                    layui.data(setter.tableName, {
+                        key: setter.request.tokenName
+                        , value: 'JWT ' + res.data.token
+                    });
+                    layui.data(setter.tableName, {
+                        key: setter.request.userId
+                        , value: res.data.user_id
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'name'
+                        , value: res.data.username
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'permissions'
+                        , value: res.data.permissions
+                    });
+                    layui.data(setter.tableName, {
+                        key: 'manager_stores'
+                        , value: res.data.manager_stores
+                    });
 
-          //登入成功的提示与跳转
-          layer.msg('登入成功', {
-            offset: '15px'
-            ,icon: 1
-            ,time: 1000
-          }, function(){
-            location.href = '../index.html'; //后台主页
-          });
-        }
-      });
-      return false;
+                    //登入成功的提示与跳转
+                    layer.msg('登入成功', {
+                        offset: '15px'
+                        , icon: 1
+                        , time: 1000
+                    }, function () {
+                        location.href = '../index.html'; //后台主页
+                    });
+                }
+            });
+            return false;
 
+        });
     });
-  });
-  </script>
+</script>
 </body>
 </html>

+ 1 - 1
uis/views/account/user_password.html

@@ -80,7 +80,7 @@
         form.on('submit(component-form-element)', function (data) {
             admin.req({
                 url: '/account/employee/change_password/?id=' + id
-                , data: JSON.stringify(data.field)
+                , data: data.field
                 , type: 'post'
                 , done: function (res) {
                     // 清空form