# backend_manage_web **Repository Path**: jaqea/backend_manage_web ## Basic Information - **Project Name**: backend_manage_web - **Description**: 后台管理界面 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-09-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # backend_manage_web [backend_manage_web](#backend_manage_web) - [项目目录结构](#%E9%A1%B9%E7%9B%AE%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84) - [全局配置](#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE) - [.eslintrc.js](#eslintrcjs) - [.prettierrc.js](#prettierrcjs) - [.commitlintrc.js](#commitlintrcjs) - [aliasPath.js](#aliaspathjs) - [config-overrides.js](#config-overridesjs) - [setupProxy.js](#setupproxyjs) - [样式管理](#%E6%A0%B7%E5%BC%8F%E7%AE%A1%E7%90%86) - [base.js](#basejs) - [全局样式](#%E5%85%A8%E5%B1%80%E6%A0%B7%E5%BC%8F) - [接口管理](#%E6%8E%A5%E5%8F%A3%E7%AE%A1%E7%90%86) - [base.js](#basejs-1) - [modules](#modules) - [界面管理](#%E7%95%8C%E9%9D%A2%E7%AE%A1%E7%90%86) - [路由设计](#%E8%B7%AF%E7%94%B1%E8%AE%BE%E8%AE%A1) - [状态管理](#%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86) - [configStore.js](#configstorejs) - [modules](#modules-1) - [Saga 中间件](#saga-%E4%B8%AD%E9%97%B4%E4%BB%B6) - [modules](#modules-2) - [注意事项](#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9) - [开发流程](#%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B) - [联系我们](#%E8%81%94%E7%B3%BB%E6%88%91%E4%BB%AC) 成都大学计算机学院官网后台管理界面。 所用技术: - 使用**React.js**作为编码语言。 - 使用**Antd**组件进行页面编写。 - 使用**Less**进行样式编写。 - 使用**React-router4**管理路由。 - 使用**React-Redux+Immutable.js**管理数据。 - 使用**React-Saga**中间件处理异步操作。 - 使用**Axios**进行服务端交互。 - 使用**Eslint+Airbub、Prettier、Commitlint**配置规范代码。 ## 项目目录结构 ```cmd |-- backend_manage_web |-- .commitlintrc.js # commitlint配置文件 |-- .eslintrc.js # eslint配置文件 |-- .gitignore # git忽略文件 |-- .prettierrc.js # prettier配置文件 |-- aliasPath.js # 路径别名 |-- config-overrides.js # 全局配置文件 |-- package.json |-- README.md |-- yarn.lock |-- public | |-- favicon.ico | |-- index.html | |-- logo192.png | |-- logo512.png | |-- manifest.json | |-- robots.txt |-- src |-- BaseComponent.js # 封装的基类组件 |-- index.jsx # 入口组件 |-- setupProxy.js # 跨域配置 |-- api # API接口 | |-- base.js # 环境域名配置 | |-- modules # 模块接口 | |-- carouselSetting.js # 轮播图设置 | |-- friendshipLinkSetting.js # 友情链接设置 | |-- homeModuleSetting.js # 首页模块设置 | |-- homeSetting.js # 首页设置 | |-- index.js # 入口文件 | |-- logoTitle.js # logo与标题 | |-- menuSetting.js # 菜单设置 | |-- moduleManage.js # 模块管理 | |-- moduleSetting.js # 模块设置 | |-- user.js # 用户 | |-- userManage.js # 用户管理 |-- assets | |-- styles # 全局样式 | |-- common.less # 入口文件 | |-- layout.less # 布局样式 | |-- mixin.less # 全局混合 | |-- variable.less # 全局样式变量 | |-- theme # antd主题配置 | |-- base.js # antd主题样式配置文件 |-- components # 全局组件 | |-- AuthRoute # 路由权限组件 | |-- index.jsx |-- pages # 页面 | |-- index.js # 组件按需加载入口文件 | |-- Loadable.js # 封装按需加载 | |-- App # app | | |-- index.jsx | |-- Home # 首页 | | |-- Home.less # 首页样式 | | |-- index.jsx | | |-- CarouselSetting # 轮播图设置 | | | |-- index.jsx | | |-- FriendshipLink #友情链接设置 | | | |-- index.jsx | | |-- HomeModuleSetting # 首页模块设置 | | | |-- index.jsx | | |-- HomeSetting # 首页设置 | | | |-- index.jsx | | |-- LogoTitle # logo与标题 | | | |-- index.jsx | | |-- MenuSetting # 菜单设置 | | | |-- index.jsx | | |-- ModuleManage # 模块管理 | | | |-- index.jsx | | |-- ModuleSetting # 模块设置 | | | |-- index.jsx | | |-- UserManage # 用户管理 | | |-- index.jsx | |-- Loading # 路由加载组件 | | |-- index.jsx | |-- Login # 登录页面组件 | | |-- index.jsx | | |-- login.less | |-- NotFound # 404页面组件 | |-- index.jsx |-- redux | |-- configStore.js # 全局状态配置文件 | |-- modules # 模块状态 | |-- carouselSetting.js # 轮播图设置 | |-- friendshipLinkSetting.js # 友情链接设置 | |-- homeModuleSetting.js # 首页模块设置 | |-- homeSetting.js # 首页设置 | |-- index.js # 入口文件 | |-- logoTitle.js # logo与标题 | |-- menuSetting.js # 菜单设置 | |-- moduleManage.js # 模块管理 | |-- moduleSetting.js # 模块设置 | |-- user.js # 用户 | |-- userManage.js # 用户管理 |-- routes # 全局路由 | |-- homeRoute.js # 首页 | |-- index.js # 入口文件 | |-- loginRoute.js # 登录 | |-- notFoundRoute.js # 404 |-- sagas # saga中间件 | |-- index.js # 入口文件 | |-- modules # 模块 | |-- carouselSetting.js # 轮播图设置 | |-- friendshipLinkSetting.js # 友情链接设置 | |-- homeModuleSetting.js # 首页模块设置 | |-- homeSetting.js # 首页设置 | |-- logoTitle.js # logo标题 | |-- menuSetting.js # 菜单设置 | |-- moduleManage.js # 模块管理 | |-- moduleSetting.js # 模块设置 | |-- user.js # 用户 | |-- userManage.js # 用户管理 |-- utils # 全局方法 |-- http.js # axios封装拦截器 ``` ## 全局配置 ### .eslintrc.js ESLint 基础配置 ```js // .eslintrc.js const aliasPath = require("./aliasPath"); // 引入路径别名 module.exports = { env: { browser: true, es2020: true, es6: true, }, parser: "babel-eslint", extends: ["eslint:recommended", "plugin:react/recommended", "airbnb"], parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 2020, // sourceType: "module", }, settings: { "import/resolver": { webpack: { config: { resolve: { alias: aliasPath, //bug }, }, }, }, }, plugins: ["react", "prettier", "babel"], rules: { // "comma-dangle": ["error", "never"], "prettier/prettier": "error", quotes: [1, "double"], }, }; ``` ### .prettierrc.js Prettier 格式化规则配置 ```js // .prettierrc.js module.exports = { printWidth: 80, //一行的字符数,如果超过会进行换行,默认为80 tabWidth: 2, //一个tab代表几个空格数,默认为80 // useTabs: false, //是否使用tab进行缩进,默认为false,表示用空格进行缩减 // singleQuote: false, //字符串是否使用单引号,默认为false,使用双引号 // semi: false, //行位是否使用分号,默认为true trailingComma: "all", //是否使用尾逗号,有三个可选值"" // bracketSpacing: true, //对象大括号直接是否有空格,默认为true,效果:{ foo: bar } // parser: "babylon", //代码的解析引擎,默认为babylon,与babel相同。 }; ``` ### .commitlintrc.js commitlint 基础配置,用于检查 `git commit -m ''` 格式。 ```js // .commitlintrc.js module.exports = { /* type(scope?): subject 例子:feat(server): test */ extends: ["@commitlint/config-conventional"], // 使用预设的配置 rules: { "type-enum": [ 2, "always", ["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"], ], // 改变预设中的提交类型 "type-case": [2, "always", "lower-case"], // 提交类型必须使用小写 "type-empty": [2, "never"], // type不能为空 // 'header-max-length': [2, 'always', 5], // header内容的最大长度为5 // 'subject-min-length': [2, 'always', 1], // subject内容的最小长度为1 // 'body-max-length': [2, 'always', 10], // body内容的最大长度为10 // 'footer-max-length': [2, 'always', 5], // footer内容的最大长度为5 }, }; ``` `commit`的格式要求如下 ```cmd Type():