zhaoxiaohai 2 years ago
parent
commit
164dea1427
2 changed files with 31 additions and 23 deletions
  1. 3 23
      app.js
  2. 28 0
      utils/queryPermissions.js

+ 3 - 23
app.js

@@ -1,31 +1,11 @@
 import {
     ApiModel
 } from './utils/api';
+
 App({
-    onLaunch() {
-        /* wx.getUserInfo({
-            success(res){
-                console.log(res)
-            }
-        })
-        wx.login({
-            success(res) {
-                console.log(res)
-                if (res.code) {
-                    //发起网络请求
-                    wx.request({
-                        url: 'https://example.com/onLogin',
-                        data: {
-                            code: res.code
-                        }
-                    }) 
-                } else {
-                    console.log('登录失败!' + res.errMsg)
-                }
-            }
-        }) */
-    },
+    onLaunch() {},
     globalData: {
         http: new ApiModel(), //接口文件
+        queryPer: require("./utils/queryPermissions"), //权限查询
     },
 })

+ 28 - 0
utils/queryPermissions.js

@@ -0,0 +1,28 @@
+/* 
+    list = 查询的数组
+    tier = 层级
+    need = 需要查询的数据
+*/
+var getObjectKey = (object, value) => {
+    return Object.keys(object).find(key => object[key] == value);
+};
+
+let name = ['modules', 'apps'];
+
+function query(list, tier, need) {
+    if (!list) return;
+    //排除不是数组 在深入查找一级
+    if (list.constructor !== Array) return query(list[Object.keys(list).filter((key) => name.includes(key))], tier, need);
+    //拿到当前层的数组 如果不是最后一层 继续查找
+    let arr = list.find(v => getObjectKey(v, tier[0]));
+    if (tier.length > 1) return query(arr, tier.splice(1, 1), need);
+    // 到达最后一层查询需要查询的权限
+    if (arr.constructor !== Array) arr = arr[Object.keys(arr).filter((key) => name.includes(key))]
+    let perArr = [];
+    for (let i = 0; i < arr.length; i++) {
+        if (need.includes(arr[i].systemmodulename)) perArr.push(arr[i])
+    }
+    return perArr;
+};
+
+module.exports.query = query;