├── readme.md ├── .nvmrc ├── src ├── assets │ ├── style │ │ ├── index.less │ │ ├── common.less │ │ ├── color │ │ │ ├── colorPalette.less │ │ │ ├── bezierEasing.less │ │ │ └── colors.less │ │ └── default.less │ └── images │ │ ├── back.png │ │ ├── del.png │ │ ├── edit.png │ │ ├── delete.png │ │ ├── logo192.png │ │ ├── search.png │ │ ├── goods_img.png │ │ ├── scan_blue.png │ │ ├── scan_grey.png │ │ ├── arrow_down.png │ │ ├── finsh_icon.png │ │ ├── package_icon.png │ │ ├── default_goods.png │ │ └── subgoods_iocn.png ├── kits │ ├── index.ts │ ├── msg │ │ └── index.ts │ ├── util │ │ ├── regexUtil.ts │ │ └── getEnv.ts │ ├── checkLogin.tsx │ ├── lazyLoad.tsx │ ├── hooks.ts │ └── checkPermission.tsx ├── pages │ ├── chart │ │ ├── index.less │ │ ├── chartLine.module.less │ │ └── chart-line.tsx │ ├── workspace │ │ ├── type.ts │ │ ├── index.module.less │ │ ├── components │ │ │ ├── breadcrumbs.tsx │ │ │ ├── menu.tsx │ │ │ ├── header.less │ │ │ └── header.tsx │ │ ├── slice.ts │ │ ├── index.tsx │ │ └── util.ts │ ├── error403.tsx │ ├── error404.tsx │ ├── user │ │ ├── type.ts │ │ ├── web-api.ts │ │ ├── util.ts │ │ ├── user.module.less │ │ ├── user-add.tsx │ │ └── user-list.tsx │ └── login │ │ ├── login.module.less │ │ └── index.tsx ├── components │ ├── index.ts │ ├── HeaderDropdown │ │ ├── index.module.less │ │ └── index.tsx │ ├── NoticeIcon │ │ ├── index.module.less │ │ ├── NoticeList.module.less │ │ ├── NoticeList.tsx │ │ └── NoticeIcon.tsx │ ├── Image │ │ └── index.tsx │ └── style │ │ ├── colorPalette.less │ │ ├── bezierEasing.less │ │ ├── colors.less │ │ └── default.less ├── store │ ├── rootReducer.ts │ └── index.ts ├── http │ ├── interceptors │ │ ├── types.ts │ │ ├── auth-intereceptor.ts │ │ ├── response-log-interceptor.ts │ │ ├── error-response-interceptor.ts │ │ └── token-interceptor.ts │ ├── response.ts │ └── fetch.ts ├── index.tsx └── router │ ├── routeMap.tsx │ └── index.tsx ├── .husky ├── commit-msg └── pre-commit ├── .prettierignore ├── .stylelintignore ├── .huskyrc ├── .env.test ├── .env.mock ├── .env.production ├── .eslintignore ├── index.html ├── typings ├── env.d.ts └── global.d.ts ├── .gitignore ├── tsconfig.json ├── .stylelintrc.js ├── .prettierrc.js ├── commitlint.config.js ├── mock └── user.ts ├── vite.config.ts ├── package.json └── .eslintrc.js /readme.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20.19.1 2 | -------------------------------------------------------------------------------- /src/assets/style/index.less: -------------------------------------------------------------------------------- 1 | @import url('common'); 2 | -------------------------------------------------------------------------------- /src/kits/index.ts: -------------------------------------------------------------------------------- 1 | import Msg from './msg' 2 | 3 | export { Msg } 4 | -------------------------------------------------------------------------------- /src/pages/chart/index.less: -------------------------------------------------------------------------------- 1 | .img2 { 2 | width: 400px; 3 | height: 400px; 4 | } 5 | -------------------------------------------------------------------------------- /src/pages/chart/chartLine.module.less: -------------------------------------------------------------------------------- 1 | .img { 2 | width: 200px; 3 | height: 200px; 4 | } 5 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn commitlint --edit "$1" 5 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn lint-staged --allow-empty 5 | -------------------------------------------------------------------------------- /src/assets/images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/back.png -------------------------------------------------------------------------------- /src/assets/images/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/del.png -------------------------------------------------------------------------------- /src/assets/images/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/edit.png -------------------------------------------------------------------------------- /src/assets/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/delete.png -------------------------------------------------------------------------------- /src/assets/images/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/logo192.png -------------------------------------------------------------------------------- /src/assets/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/search.png -------------------------------------------------------------------------------- /src/assets/images/goods_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/goods_img.png -------------------------------------------------------------------------------- /src/assets/images/scan_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/scan_blue.png -------------------------------------------------------------------------------- /src/assets/images/scan_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/scan_grey.png -------------------------------------------------------------------------------- /src/kits/msg/index.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from 'events' 2 | 3 | const Msg = new EventEmitter() 4 | export default Msg 5 | -------------------------------------------------------------------------------- /src/assets/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/arrow_down.png -------------------------------------------------------------------------------- /src/assets/images/finsh_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/finsh_icon.png -------------------------------------------------------------------------------- /src/assets/images/package_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/package_icon.png -------------------------------------------------------------------------------- /src/assets/images/default_goods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/default_goods.png -------------------------------------------------------------------------------- /src/assets/images/subgoods_iocn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GuoguoDad/react-template-vite/HEAD/src/assets/images/subgoods_iocn.png -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | /dist/* 2 | .local 3 | /node_modules/** 4 | 5 | **/*.svg 6 | **/*.sh 7 | 8 | /public/* 9 | 10 | src/components/* 11 | -------------------------------------------------------------------------------- /src/components/index.ts: -------------------------------------------------------------------------------- 1 | import Image from './Image' 2 | import NoticeIcon from './NoticeIcon/NoticeIcon' 3 | 4 | export { Image, NoticeIcon } 5 | -------------------------------------------------------------------------------- /.stylelintignore: -------------------------------------------------------------------------------- 1 | /dist/* 2 | /public/* 3 | public/* 4 | 5 | 6 | src/components/* 7 | src/assets/style/color/* 8 | src/assets/style/default.less 9 | -------------------------------------------------------------------------------- /.huskyrc: -------------------------------------------------------------------------------- 1 | # ~/.huskyrc 2 | # This loads nvm.sh and sets the correct PATH before running hook 3 | export NVM_DIR="$HOME/.nvm" 4 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" 5 | -------------------------------------------------------------------------------- /src/pages/workspace/type.ts: -------------------------------------------------------------------------------- 1 | export interface WorkSpaceState { 2 | menuName: string 3 | menuKey: string 4 | subMenuKey: string 5 | collapsed: boolean 6 | [key: string]: unknown 7 | } 8 | -------------------------------------------------------------------------------- /.env.test: -------------------------------------------------------------------------------- 1 | 2 | APP_MODE = 'production' 3 | 4 | # title 5 | APP_DOCUMENT_TITLE = 'admin' 6 | 7 | # port 8 | APP_HOST_PORT = 3000 9 | 10 | # host 11 | APP_HOST_API = http://127.0.0.1 12 | 13 | -------------------------------------------------------------------------------- /.env.mock: -------------------------------------------------------------------------------- 1 | 2 | APP_MODE = 'development' 3 | 4 | # title 5 | APP_DOCUMENT_TITLE = 'admin' 6 | 7 | # port 8 | APP_HOST_PORT = 3000 9 | 10 | # host 11 | APP_HOST_API = http://localhost 12 | 13 | -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | 2 | APP_MODE = 'production' 3 | 4 | # title 5 | APP_DOCUMENT_TITLE = 'admin' 6 | 7 | # port 8 | APP_HOST_PORT = 3000 9 | 10 | # host 11 | APP_HOST_API = http://127.0.0.1 12 | 13 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | *.sh 2 | node_modules 3 | *.md 4 | *.woff 5 | *.ttf 6 | .vscode 7 | .idea 8 | dist 9 | /public 10 | /docs 11 | .husky 12 | .local 13 | /bin 14 | .eslintrc.js 15 | .prettierrc.js 16 | /mock/* 17 | /dist/* 18 | 19 | -------------------------------------------------------------------------------- /src/store/rootReducer.ts: -------------------------------------------------------------------------------- 1 | import { combineReducers } from '@reduxjs/toolkit' 2 | import WorkSPaceSlice from '@pages/workspace/slice' 3 | 4 | const rootReducer = combineReducers({ 5 | workspace: WorkSPaceSlice 6 | }) 7 | 8 | export default rootReducer 9 | -------------------------------------------------------------------------------- /src/pages/workspace/index.module.less: -------------------------------------------------------------------------------- 1 | .container { 2 | height: 100%; 3 | padding: 0; 4 | margin: 0; 5 | } 6 | 7 | .content { 8 | height: 100%; 9 | background: #F3F3F3; 10 | padding:0 24px 24px 24px; 11 | box-sizing: border-box; 12 | } 13 | -------------------------------------------------------------------------------- /src/pages/error403.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const Error404: React.FC = () => { 4 | return ( 5 |
诶呀,您没有权限,请联系管理员...
7 |诶呀,找不到当前页面了...
7 |