# code-admin **Repository Path**: xuwenliu/code-admin ## Basic Information - **Project Name**: code-admin - **Description**: 少儿编程后台管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-16 - **Last Updated**: 2025-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HIV项目-基于 Ant design Pro ### 1.安装依赖 ```bash npm install ``` ### 2.本地运行 ```bash npm run dev ``` ### 3.打包 ```bash npm run build ``` 打包配置: `config/config.js` ### 4.代理 `config/proxy.js` ```js /** * 在生产环境 代理是无法生效的,所以这里没有生产环境的配置 * ------------------------------- * The agent cannot take effect in the production environment * so there is no configuration of the production environment * For details, please see * https://pro.ant.design/docs/deploy */ export default { dev: { // localhost:8000/api/** -> http://manage.pshytz.com/api/** "/api": { // 要代理的地址 target: "http://manage.pshytz.com", //测试 // target: "http://ewpr2z.natappfree.cc", // 代理 // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie changeOrigin: true, }, }, }; ``` ### 5.权限 1.`src/access.js` 配置权限列表。 - permissionList前端根据菜单和后端统一决定,每一个菜单对应一个code。 - permissionCodes登录成功后后端根据在后端配置的权限菜单进行返回,前端存储在storage里面。 - 前端将permissionList里面的每一项标记为true(有菜单权限)/false(无该菜单权限) - 最后return ```js /** * @see https://umijs.org/zh-CN/plugins/plugin-access * */ export default function access(initialState) { const { currentUser } = initialState ?? {}; console.log("----", JSON.stringify(currentUser?.permissionCodes)); const permissionCodes = currentUser?.permissionCodes || []; // 后端返回的权限code列表 const permissionList = [ "INDEX_PAGE", "AUCTION_MANAGE_PAGE", "USER_PAGE", "ORDER_PAGE", "CONTRACT_PAGE", "INFORMATION_PAGE", "PERMISSION_PAGE", "SYSTEM_SETTING_PAGE", "AUCTION_LIST_PAGE", "CATEGORY_LIST_PAGE", "ORDER_LIST_PAGE", "TAKE_ORDER_PAGE", "ROLE_PAGE", "ADMIN_LIST_PAGE", "ROTATION_PAGE", "LOGISTICS_PAGE", ]; if (currentUser?.account === "admin") { permissionCodes.push("ADMIN"); } let obj = {}; permissionList.forEach((item) => { obj[item] = permissionCodes.includes(item); }); console.log("obj===", obj); // {INDEX_PAGE:true,AUCTION_MANAGE_PAGE:false} return obj; } ``` 2.路由配置(配合access.js) - 路由的每一项都配置:access ```js ``` 3.登录成功后需要跳转到配置的权限列表里面的第一个菜单。 (详见:src/pages/Admin/Login/index.jsx)`fetchUserInfo`函数。