ujcms-cp-v10.1.3/README.md

87 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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 = [
...
]
}
```