🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .husky | ||
| .idea | ||
| .vscode | ||
| mock/sample | ||
| plop-templates | ||
| public | ||
| src | ||
| .editorconfig | ||
| .env | ||
| .env.development | ||
| .env.production | ||
| .env.staging | ||
| .eslintignore | ||
| .eslintrc | ||
| .eslintrc-auto-import.json | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| auto-imports.d.ts | ||
| components.d.ts | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| plopfile.js | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
README.md
UJCMS-CP
UJCMS-CP是UJCMS的后台前端项目。使用 Vue 3、Vite、TypeScript、ElementPlus、TailwindCSS、VueRouter、VueI18n 开发。
需要启动UJCMS主项目才可以使用,不可单独运行(无法访问后端接口)。
如不需要修改UJCMS的后台界面,则不必启动此项目。UJCMS的/src/main/webapp/cp目录已包含本项目编译后的代码,直接运行UJCMS主项目即可。
搭建步骤
- 使用 vscode 开发工具。
- 安装 node 环境。Node 20.12+ 版本。
- 安装 pnpm。执行:npm install -g pnpm
- 使用淘宝 npm 镜像。执行:pnpm set registry https://registry.npmmirror.com/
- 安装依赖。执行:pnpm install
- 启动程序。执行:pnpm run dev
- 访问:http://127.0.0.1:5173
- 用户名:admin,密码:password
修改后台标识
- 修改
.env文件中的VITE_APP_TITLE=UJCMS后台管理配置,可改变浏览器页签上的标题。 - 修改
.env文件中的VITE_APP_NAME=UJCMS配置,可改变登录页、后台左侧导航等处的UJCMS标识。 - 替换
/public/favicon.png图片,可改变浏览器标签页上显示的图标。 - 修改
/src/layout/components/AppSidebar/SidebarLogo.vue文件中的svg图标,可改变后台左侧导航处LOGO图标。
编译及部署
- 执行:pnpm run build
- 编译后的程序在
/dist目录。 - 将
/dist目录里的文件拷贝至主项目UJCMS的/src/main/webapp/cp目录下(先将原目录下的文件删除)。
常见错误
编译时出现 Javascript Heap out of memory 错误,代表内存溢出。可以设置 NODE_OPTIONS 环境变量为 --max-old-space-size=8192。
前后端分开部署
通常前端和后端程序部署到同一个应用,即将前端程序复制到主项目UJCMS的/cp目录。以演示站点为例,后端接口地址为https://demo.ujcms.com/api,前端访问地址则为https://demo.ujcms.com/cp/。这样可以避免跨域问题,是最简单的部署方式。
如果需要将前后端部署到不同域名或端口,如后端接口地址为http://www.example.com/api,前端地址为http://www.frontend.com。由于前后端域名不同,前端直接访问后端接口会出现跨域错误。这时需要在前端服务器部署反向代理,解决跨域问题。以nginx为例:
# 代理 api 接口
location /api {
proxy_pass http://www.example.com;
}
# 代理上传文件
location /uploads {
proxy_pass http://www.example.com;
}
开发模式启动时,情况也类似,后端接口地址为http://localhost:8080/api,前端地址为http://localhost:9520。前后端端口不同,也属于跨域。但前端开发在状态启动时,会自动开启代理,相关配置在vite.config.ts文件中。类似以下代码:
proxy: {
'/api': {
target: env.VITE_PROXY,
changeOrigin: true,
},
'/uploads': {
target: env.VITE_PROXY,
changeOrigin: true,
},
},
菜单和角色权限配置
如果进行二次开发,需新增功能,可在/src/router/index.ts文件中配置菜单。
并可在/src/data.ts文件中配置权限,配置好的权限会在角色管理 - 权限设置中的功能权限中显示。
配置内容:
export function getPermsTreeData(): any[] {
const {
global: { t },
} = i18n;
const perms = [
...
]
}