diff --git a/package-lock.json b/package-lock.json index eab1659..e1dc4cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7283,9 +7283,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==" + "version": "1.0.30001553", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001553.tgz", + "integrity": "sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==" }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -26806,9 +26806,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001458", - "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", - "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==" + "version": "1.0.30001553", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001553.tgz", + "integrity": "sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==" }, "case-sensitive-paths-webpack-plugin": { "version": "2.4.0", diff --git a/src/stores/AuthStore.js b/src/stores/AuthStore.js index 5e51f7f..6c2bf36 100644 --- a/src/stores/AuthStore.js +++ b/src/stores/AuthStore.js @@ -1,59 +1,59 @@ -import { makeAutoObservable, runInAction } from "mobx"; -import * as dd from "dingtalk-jsapi"; -import * as config from "../config"; +import { makeAutoObservable, runInAction } from 'mobx'; +import * as dd from 'dingtalk-jsapi'; +import * as config from '../config'; // 权限管理 class AuthStore { - constructor(rootStore) { - this.rootStore = rootStore; - makeAutoObservable(this); - if (process.env.NODE_ENV == "production") { - this.get_auth(); // 放到钉钉环境才能开启 - } - } + constructor(rootStore) { + this.rootStore = rootStore; + makeAutoObservable(this); + if (process.env.NODE_ENV === 'production') { + this.get_auth(); // 放到钉钉环境才能开启 + } + } - auth = ["admin"]; // 开发时候用,正式环境留空 - user = { name: "loading", userid: "..." }; // 开发时候用,正式环境留空 + auth = process.env.NODE_ENV === 'production' ? [] : ['admin']; // 开发时候用,正式环境留空 + user = { name: 'loading', userid: '...' }; // 开发时候用,正式环境留空 - has_permission(requireds) { - if (Object.keys(requireds).length == 0) { - return true; - } - const has_permission = requireds.filter(item => this.auth.includes(item)); - if (Object.keys(has_permission).length !== 0) { - return true; - } - return false; - } + has_permission(requireds) { + if (Object.keys(requireds).length === 0) { + return true; + } + const has_permission = requireds.filter((item) => this.auth.includes(item)); + if (Object.keys(has_permission).length !== 0) { + return true; + } + return false; + } - // 请求权限 - get_auth() { - const _this = this; - const CORPID = "ding48bce8fd3957c96b"; // 企业的id - dd.runtime.permission.requestAuthCode({ - corpId: CORPID, - onSuccess: function (res) { - console.log(res); - const code = res.code; - const url = "/dingtalk/dingtalkwork/Getusers_auth?code=" + code; - // 请求获取HT接口获取用户权限和用户信息 - fetch(config.HT_HOST + url) - .then(response => response.json()) - .then(json => { - runInAction(() => { - _this.user = json.result; - _this.auth = json.result.authlist; - }); - }) - .catch(error => { - console.log("fetch data failed", error); - }); - }, - onFail: function (err) { - console.log(err); - }, - }); - } + // 请求权限 + get_auth() { + const _this = this; + const CORPID = 'ding48bce8fd3957c96b'; // 企业的id + dd.runtime.permission.requestAuthCode({ + corpId: CORPID, + onSuccess: function (res) { + console.log(res); + const code = res.code; + const url = '/dingtalk/dingtalkwork/Getusers_auth?code=' + code; + // 请求获取HT接口获取用户权限和用户信息 + fetch(config.HT_HOST + url) + .then((response) => response.json()) + .then((json) => { + runInAction(() => { + _this.user = json.result; + _this.auth = json.result.authlist; + }); + }) + .catch((error) => { + console.log('fetch data failed', error); + }); + }, + onFail: function (err) { + console.log(err); + }, + }); + } } export default AuthStore; diff --git a/src/views/ProtectedRoute.jsx b/src/views/ProtectedRoute.jsx index 52f00f3..2f58972 100644 --- a/src/views/ProtectedRoute.jsx +++ b/src/views/ProtectedRoute.jsx @@ -1,36 +1,25 @@ -import React, {useContext, useEffect} from 'react'; -import {Row, Col, Button, Tabs, Spin, Result, Space} from 'antd'; -import { - ContainerOutlined, - SearchOutlined, -} from '@ant-design/icons'; -import {stores_Context} from '../config'; -import {Line} from "@ant-design/charts"; -import {observer} from 'mobx-react'; +import React, { useContext, useEffect } from 'react'; +import { Row, Col, Button, Tabs, Spin, Result, Space } from 'antd'; +import { ContainerOutlined, SearchOutlined } from '@ant-design/icons'; +import { stores_Context } from '../config'; +import { Line } from '@ant-design/charts'; +import { observer } from 'mobx-react'; import DatePickerCharts from '../components/search/DatePickerCharts'; -import {NavLink, useParams,Outlet, useOutlet, useLocation, useNavigate} from "react-router-dom"; -import * as comm from "../utils/commons"; -import * as config from "../config"; +import { NavLink, useParams, Outlet, useOutlet, useLocation, useNavigate } from 'react-router-dom'; +import * as comm from '../utils/commons'; +import * as config from '../config'; -const ProtectedRoute = ({auth}) => { - const {auth_store} = useContext(stores_Context); - - if (auth_store.has_permission(auth)) { - return ; - } - - return ( -
- -
- ); +const ProtectedRoute = ({ auth }) => { + const { auth_store } = useContext(stores_Context); + if (auth_store.has_permission(auth)) { + return ; + } + return ( +
+ +
+ ); }; export default observer(ProtectedRoute); -