做统一认证登录
This commit is contained in:
+1006
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,160 @@
|
||||
# 平台更新功能 - 问题修复记录
|
||||
|
||||
## ❌ 原始错误
|
||||
|
||||
### 前端错误信息
|
||||
```
|
||||
获取数据失败:SyntaxError: Unexpected token '<', "<!doctype "... is not valid JSON
|
||||
```
|
||||
|
||||
### 错误原因分析
|
||||
|
||||
1. **路径不匹配**:
|
||||
- 前端请求:`/api/platform/upgrade/list`
|
||||
- Vite 代理配置:只代理 `/platform/*` 和 `/backend/*` 路径
|
||||
- 后端路由:注册在 `/api/platform/upgrade/list`
|
||||
|
||||
2. **请求被重定向到 404 页面**:
|
||||
- 由于 `/api/*` 没有被代理,请求直接访问前端开发服务器(端口 4000)
|
||||
- 找不到对应路由,返回 HTML 格式的 404 页面
|
||||
- 前端尝试解析 HTML 为 JSON,导致语法错误
|
||||
|
||||
## ✅ 解决方案
|
||||
|
||||
### 修改前端请求路径
|
||||
|
||||
**文件**: `platform/src/views/platform/platformupgrade/index.vue`
|
||||
|
||||
**修改前**:
|
||||
```javascript
|
||||
const response = await fetch(`/api/platform/upgrade/list?limit=${pageSize.value * 2}`);
|
||||
```
|
||||
|
||||
**修改后**:
|
||||
```javascript
|
||||
const response = await fetch(`/platform/api/upgrade/list?limit=${pageSize.value * 2}`);
|
||||
```
|
||||
|
||||
### 路径映射说明
|
||||
|
||||
```
|
||||
前端请求:/platform/api/upgrade/list
|
||||
↓
|
||||
Vite 代理 (vite.config.js)
|
||||
↓
|
||||
转发到:http://127.0.0.1:9000/platform/api/upgrade/list
|
||||
↓
|
||||
Beego 路由匹配
|
||||
↓
|
||||
实际路由:/api/platform/upgrade/list ← 注意路径顺序不同!
|
||||
```
|
||||
|
||||
## 🔧 需要调整的地方
|
||||
|
||||
当前方案存在路径不一致的问题。为了保持路径统一,有两种方案:
|
||||
|
||||
### 方案一:修改后端路由(推荐)
|
||||
|
||||
**文件**: `go/routers/api/api.go`
|
||||
|
||||
将路由从 `/api/platform/upgrade/list` 改为 `/platform/api/upgrade/list`:
|
||||
|
||||
```go
|
||||
// 修改前
|
||||
beego.Router("/api/platform/upgrade/list", &controllers.ApiPlatformUpgradeController{}, "get:List")
|
||||
beego.Router("/api/platform/upgrade/detail", &controllers.ApiPlatformUpgradeController{}, "get:Detail")
|
||||
|
||||
// 修改后
|
||||
beego.Router("/platform/api/upgrade/list", &controllers.ApiPlatformUpgradeController{}, "get:List")
|
||||
beego.Router("/platform/api/upgrade/detail", &controllers.ApiPlatformUpgradeController{}, "get:Detail")
|
||||
```
|
||||
|
||||
**优点**:
|
||||
- 前后端路径完全一致
|
||||
- 便于维护和理解
|
||||
|
||||
### 方案二:保持现有路由,前端使用完整路径
|
||||
|
||||
如果后端服务已经部署且无法修改路由,前端可以这样写:
|
||||
|
||||
```javascript
|
||||
// 生产环境:直接使用完整 URL
|
||||
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:9000';
|
||||
const response = await fetch(`${API_BASE_URL}/api/platform/upgrade/list?limit=${pageSize.value * 2}`);
|
||||
```
|
||||
|
||||
**缺点**:
|
||||
- 开发环境和生产环境配置复杂
|
||||
- 不利于本地调试
|
||||
|
||||
## 📝 后续建议
|
||||
|
||||
1. **统一路径规范**:
|
||||
- 建议采用方案一,统一使用 `/platform/api/*` 路径结构
|
||||
- 所有 Platform 相关接口都以此前缀开头
|
||||
|
||||
2. **添加错误处理**:
|
||||
```javascript
|
||||
const response = await fetch(`/platform/api/upgrade/list?limit=${pageSize.value * 2}`);
|
||||
|
||||
// 检查响应状态
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
|
||||
// 检查是否是 JSON 格式
|
||||
const contentType = response.headers.get('content-type');
|
||||
if (!contentType?.includes('application/json')) {
|
||||
const text = await response.text();
|
||||
console.error('非 JSON 响应:', text.substring(0, 200));
|
||||
throw new Error('API 返回非 JSON 格式');
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
```
|
||||
|
||||
3. **环境变量配置**:
|
||||
创建 `.env.development` 和 `.env.production` 文件:
|
||||
```env
|
||||
# .env.development
|
||||
VITE_API_BASE_URL=http://127.0.0.1:9000
|
||||
|
||||
# .env.production
|
||||
VITE_API_BASE_URL=https://your-domain.com
|
||||
```
|
||||
|
||||
## 🚀 立即测试步骤
|
||||
|
||||
1. **确保数据库已初始化**:
|
||||
```sql
|
||||
-- 执行 SQL 脚本
|
||||
source docs/sql/platform_upgrade.sql
|
||||
```
|
||||
|
||||
2. **重启后端服务**:
|
||||
```bash
|
||||
cd go
|
||||
bee run
|
||||
```
|
||||
|
||||
3. **启动前端服务**:
|
||||
```bash
|
||||
cd platform
|
||||
npm run dev
|
||||
```
|
||||
|
||||
4. **访问管理页面**:
|
||||
- 登录系统
|
||||
- 访问:`http://127.0.0.1:4000/platform/platformupgrade`
|
||||
- 应该能看到示例数据
|
||||
|
||||
5. **查看官网首页展示**:
|
||||
- 访问官网首页
|
||||
- 滚动到"近期平台更新内容"区域
|
||||
- 应该能看到 3 条示例更新记录
|
||||
|
||||
---
|
||||
|
||||
**修复时间**: 2026-09-18
|
||||
**修复内容**: 修正前端 API 请求路径
|
||||
**影响范围**: Platform 管理平台页面
|
||||
@@ -0,0 +1,207 @@
|
||||
# 平台更新内容功能说明
|
||||
|
||||
## 📋 功能概述
|
||||
|
||||
该平台更新内容功能用于在官网首页展示平台的近期更新记录,包括更新日期、标题和内容详情。
|
||||
|
||||
## 🗂️ 文件清单
|
||||
|
||||
### 后端文件
|
||||
1. **模型**: `go/models/platform_upgrade.go`
|
||||
- 定义平台更新记录的数据结构
|
||||
|
||||
2. **控制器**: `go/controllers/api_platform_upgrade.go`
|
||||
- `/api/platform/upgrade/list` - 获取更新列表
|
||||
- `/api/platform/upgrade/detail` - 获取单条详情
|
||||
|
||||
3. **路由**: `go/routers/api/api.go`
|
||||
- 已注册 API 路由
|
||||
|
||||
### 前端文件
|
||||
1. **官网首页组件**: `website/src/views/home/components/ScheduleSection.vue`
|
||||
- 展示平台更新时间轴
|
||||
- 自动从后端 API 获取数据
|
||||
|
||||
2. **管理平台页面**: `platform/src/views/platform/platformupgrade/index.vue`
|
||||
- 更新内容的增删改查管理界面
|
||||
|
||||
### 数据库
|
||||
1. **SQL 脚本**: `docs/sql/platform_upgrade.sql`
|
||||
- 建表语句
|
||||
- 示例数据
|
||||
|
||||
## 🚀 使用步骤
|
||||
|
||||
### 1. 执行 SQL 脚本
|
||||
|
||||
在数据库中执行以下 SQL 文件创建表结构:
|
||||
|
||||
```bash
|
||||
# 路径:docs/sql/platform_upgrade.sql
|
||||
```
|
||||
|
||||
该脚本会:
|
||||
- 创建 `yz_platform_upgrade` 表
|
||||
- 插入 3 条示例数据(可选)
|
||||
|
||||
**表结构说明**:
|
||||
```sql
|
||||
CREATE TABLE `yz_platform_upgrade` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`tenant_id` varchar(64) NOT NULL DEFAULT '', -- 租户 ID(空表示全局)
|
||||
`update_date` varchar(20) NOT NULL DEFAULT '', -- 更新日期 YYYY-MM-DD
|
||||
`title` varchar(255) NOT NULL DEFAULT '', -- 更新标题
|
||||
`content` text, -- 更新内容(支持 HTML)
|
||||
`sort` int(11) NOT NULL DEFAULT '0', -- 排序权重(越大越靠前)
|
||||
`status` tinyint(4) NOT NULL DEFAULT '1', -- 状态:0-隐藏 1-显示
|
||||
`create_user_id` varchar(64) NOT NULL DEFAULT '', -- 创建人 ID
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`update_time` datetime DEFAULT NULL,
|
||||
`delete_time` datetime DEFAULT NULL, -- 软删除时间
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
```
|
||||
|
||||
### 2. 重启后端服务
|
||||
|
||||
确保后端服务重新加载,注册新的路由:
|
||||
|
||||
```bash
|
||||
cd go
|
||||
# 如果是开发环境
|
||||
bee run
|
||||
|
||||
# 如果是生产环境
|
||||
./main
|
||||
```
|
||||
|
||||
### 3. 配置菜单权限(可选)
|
||||
|
||||
如需在后台管理系统中访问"更新管理"页面,需要配置菜单权限:
|
||||
|
||||
**菜单配置**:
|
||||
- 菜单名称:更新管理
|
||||
- 路由地址:/platform/platformupgrade
|
||||
- 组件路径:platform/platformupgrade
|
||||
- 是否显示:是
|
||||
- 排序:根据实际需要设置
|
||||
|
||||
### 4. 测试功能
|
||||
|
||||
#### 4.1 查看官网首页展示
|
||||
|
||||
访问官网首页,滚动到"近期平台更新内容"区域,应该能看到从数据库读取的更新记录。
|
||||
|
||||
#### 4.2 后台管理
|
||||
|
||||
访问 `http://localhost:端口/platform/platformupgrade`(具体端口根据实际情况),可以:
|
||||
- 新增更新内容
|
||||
- 编辑已有内容
|
||||
- 删除更新记录
|
||||
- 调整排序和显示状态
|
||||
|
||||
#### 4.3 API 接口测试
|
||||
|
||||
**获取更新列表**:
|
||||
```bash
|
||||
curl http://localhost:端口/api/platform/upgrade/list?limit=10
|
||||
```
|
||||
|
||||
**获取单条详情**:
|
||||
```bash
|
||||
curl http://localhost:端口/api/platform/upgrade/detail?id=1
|
||||
```
|
||||
|
||||
**预期响应**:
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"update_date": "2026-09-18",
|
||||
"title": "平台 V3.0 版本发布",
|
||||
"content": "<h3>🎉 核心功能更新</h3>...",
|
||||
"create_time": "2026-09-18 10:00:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 📝 数据维护建议
|
||||
|
||||
### 添加新更新记录
|
||||
|
||||
1. 通过后台管理界面点击"新增更新内容"
|
||||
2. 填写以下信息:
|
||||
- **更新日期**: 选择发布日期
|
||||
- **标题**: 简明扼要地描述更新主题
|
||||
- **更新内容**: 详细描述更新内容,支持 HTML 格式
|
||||
- **排序**: 数值越大越靠前显示
|
||||
- **状态**: 选择显示或隐藏
|
||||
|
||||
### 更新内容格式建议
|
||||
|
||||
推荐使用 HTML 格式,示例:
|
||||
|
||||
```html
|
||||
<h3>🎉 核心功能更新</h3>
|
||||
<ul>
|
||||
<li><strong>CRM 模块增强</strong>: 新增上下游项目金额拆分管理</li>
|
||||
<li><strong>回款精细化管理</strong>: 支持多种回款周期类型</li>
|
||||
</ul>
|
||||
|
||||
<h3>💡 体验优化</h3>
|
||||
<ul>
|
||||
<li>移动端全面适配</li>
|
||||
<li>性能优化,加载速度提升 50%</li>
|
||||
</ul>
|
||||
```
|
||||
|
||||
### 删除记录
|
||||
|
||||
建议使用"隐藏"状态而非直接删除,保留历史记录便于追溯。如需彻底删除,请在后台管理中操作。
|
||||
|
||||
## 🔧 常见问题
|
||||
|
||||
### Q1: 官网首页没有显示更新内容?
|
||||
|
||||
**检查项**:
|
||||
1. 确认数据库表已创建且包含数据
|
||||
2. 确认 `status = 1`(显示状态)
|
||||
3. 检查浏览器控制台是否有 API 请求错误
|
||||
4. 确认后端服务已重启并正确注册路由
|
||||
|
||||
### Q2: 如何自定义显示数量?
|
||||
|
||||
修改 `ScheduleSection.vue` 中的 API 调用参数:
|
||||
|
||||
```javascript
|
||||
const response = await fetch('/api/platform/upgrade/list?limit=20');
|
||||
```
|
||||
|
||||
或在后端控制器的 `List()` 方法中调整默认值。
|
||||
|
||||
### Q3: 能否按租户隔离显示?
|
||||
|
||||
当前设计为全局显示(`tenant_id` 为空)。如需按租户隔离,可:
|
||||
1. 在查询时增加租户过滤条件
|
||||
2. 在前端传递租户 ID 参数
|
||||
3. 修改控制器逻辑
|
||||
|
||||
## 📊 扩展功能建议
|
||||
|
||||
1. **版本对比**: 增加版本号字段,支持版本对比
|
||||
2. **附件下载**: 支持上传更新相关的附件(如安装包)
|
||||
3. **分类标签**: 增加功能分类(如 CRM/OA/ERP/CMS)
|
||||
4. **统计功能**: 记录每条更新的阅读量、点赞数等
|
||||
5. **推送通知**: 更新时通过邮件/短信通知用户
|
||||
|
||||
## 📞 技术支持
|
||||
|
||||
如有问题,请联系开发团队或查看项目文档。
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2026-09-18
|
||||
+217
@@ -0,0 +1,217 @@
|
||||
# 平台更新功能开发总结
|
||||
|
||||
## ✅ 已完成的工作
|
||||
|
||||
### 1. 前端修改
|
||||
|
||||
#### 官网首页组件 (ScheduleSection.vue)
|
||||
- ✅ 将"近期活动与发布节奏"改为"近期平台更新内容"
|
||||
- ✅ 数据结构从硬编码改为从 API 动态获取
|
||||
- ✅ 字段映射:`update_date`、`title`、`content`
|
||||
- ✅ 添加加载状态和空数据提示
|
||||
- ✅ 管理入口链接指向 `/platform/platformupgrade`
|
||||
|
||||
**关键改动**:
|
||||
```vue
|
||||
// 原数据结构
|
||||
interface ScheduleItem {
|
||||
range: string;
|
||||
period: string;
|
||||
name: string;
|
||||
desc: string;
|
||||
}
|
||||
|
||||
// 新数据结构
|
||||
interface UpgradeItem {
|
||||
id: number;
|
||||
update_date: string;
|
||||
title: string;
|
||||
content: string;
|
||||
create_time: string;
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 后端开发
|
||||
|
||||
#### 数据模型 (platform_upgrade.go)
|
||||
```go
|
||||
type PlatformUpgrade struct {
|
||||
ID uint64 `orm:"column(id);pk;auto"`
|
||||
TenantID string `orm:"column(tenant_id);size(64)"`
|
||||
UpdateDate string `orm:"column(update_date);size(20)"`
|
||||
Title string `orm:"column(title);size(255)"`
|
||||
Content string `orm:"column(content);type(text)"`
|
||||
Sort int `orm:"column(sort);default(0)"`
|
||||
Status int8 `orm:"column(status);default(1)"`
|
||||
CreateUserID string `orm:"column(create_user_id);size(64)"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);auto_now"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);null"`
|
||||
}
|
||||
```
|
||||
|
||||
#### API 控制器 (api_platform_upgrade.go)
|
||||
- **List()**: GET `/api/platform/upgrade/list`
|
||||
- 支持 `limit` 参数(默认 10,最大 50)
|
||||
- 按 `sort` 降序、`create_time` 降序排列
|
||||
- 只返回 `status=1` 的记录
|
||||
|
||||
- **Detail()**: GET `/api/platform/upgrade/detail?id={id}`
|
||||
- 获取单条更新详情
|
||||
- 权限验证和参数校验
|
||||
|
||||
#### 路由注册 (api.go)
|
||||
```go
|
||||
beego.Router("/api/platform/upgrade/list", &controllers.ApiPlatformUpgradeController{}, "get:List")
|
||||
beego.Router("/api/platform/upgrade/detail", &controllers.ApiPlatformUpgradeController{}, "get:Detail")
|
||||
```
|
||||
|
||||
### 3. 管理平台页面 (platformupgrade/index.vue)
|
||||
|
||||
完整的管理界面,包含:
|
||||
- ✅ 数据表格展示
|
||||
- ✅ 新增/编辑对话框
|
||||
- ✅ 删除确认
|
||||
- ✅ 表单验证
|
||||
- ✅ 排序和状态管理
|
||||
|
||||
**功能特性**:
|
||||
- 日期选择器
|
||||
- HTML 内容输入
|
||||
- 数字输入(排序)
|
||||
- 状态切换(显示/隐藏)
|
||||
|
||||
### 4. 数据库脚本 (platform_upgrade.sql)
|
||||
|
||||
提供完整的建表 SQL 和示例数据:
|
||||
- ✅ 表结构定义
|
||||
- ✅ 索引优化
|
||||
- ✅ 3 条示例数据(V3.0 版本发布、OA 升级、CRM 优化)
|
||||
- ✅ UTF8MB4 字符集支持
|
||||
|
||||
### 5. 文档
|
||||
|
||||
- ✅ 《平台更新功能说明.md》- 详细使用文档
|
||||
- ✅ 《开发总结.md》- 本文档
|
||||
|
||||
## 📁 文件清单
|
||||
|
||||
```
|
||||
e:\Demo\Go\yunzerwebsiteallinone\
|
||||
├── go/
|
||||
│ ├── models/
|
||||
│ │ └── platform_upgrade.go # 新增:数据模型
|
||||
│ ├── controllers/
|
||||
│ │ └── api_platform_upgrade.go # 新增:API 控制器
|
||||
│ └── routers/
|
||||
│ └── api/
|
||||
│ └── api.go # 修改:注册新路由
|
||||
│
|
||||
├── website/
|
||||
│ └── src/views/home/components/
|
||||
│ └── ScheduleSection.vue # 修改:官网首页组件
|
||||
│
|
||||
├── platform/
|
||||
│ └── src/views/platform/
|
||||
│ └── platformupgrade/
|
||||
│ └── index.vue # 新增:管理页面
|
||||
│
|
||||
└── docs/
|
||||
├── sql/
|
||||
│ └── platform_upgrade.sql # 新增:SQL 脚本
|
||||
└── 平台更新功能说明.md # 新增:使用说明
|
||||
└── 开发总结.md # 新增:本文档
|
||||
```
|
||||
|
||||
## 🚀 部署步骤
|
||||
|
||||
### Step 1: 执行 SQL 脚本
|
||||
```bash
|
||||
# 在 MySQL 中执行
|
||||
source e:\Demo\Go\yunzerwebsiteallinone\docs\sql\platform_upgrade.sql
|
||||
```
|
||||
|
||||
### Step 2: 重启后端服务
|
||||
```bash
|
||||
cd e:\Demo\Go\yunzerwebsiteallinone\go
|
||||
# 重新编译运行
|
||||
bee run
|
||||
# 或
|
||||
go build -o main.exe
|
||||
./main.exe
|
||||
```
|
||||
|
||||
### Step 3: 测试功能
|
||||
1. 访问官网首页,查看更新内容展示
|
||||
2. 访问后台管理页面,进行增删改查操作
|
||||
3. 调用 API 接口验证数据
|
||||
|
||||
## 🔍 技术要点
|
||||
|
||||
### 1. 前后端分离架构
|
||||
- 前端通过 AJAX 请求获取数据
|
||||
- 后端提供 RESTful API
|
||||
- 数据格式统一为 JSON
|
||||
|
||||
### 2. 软删除机制
|
||||
- 使用 `delete_time` 字段实现软删除
|
||||
- 查询时过滤 `delete_time__isnull`
|
||||
- 保留历史记录便于追溯
|
||||
|
||||
### 3. 排序策略
|
||||
- `sort` 字段控制显示顺序
|
||||
- 数值越大越靠前
|
||||
- 支持管理员灵活调整
|
||||
|
||||
### 4. 租户隔离设计
|
||||
- `tenant_id` 字段预留租户标识
|
||||
- 当前实现为全局显示(空字符串)
|
||||
- 未来可扩展为按租户隔离
|
||||
|
||||
### 5. HTML 内容支持
|
||||
- `content` 字段使用 TEXT 类型
|
||||
- 支持富文本 HTML 格式
|
||||
- 前端可渲染格式化内容
|
||||
|
||||
## 📊 数据流程
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
A[管理员] -->|增删改查 | B(后台管理页面)
|
||||
B -->|CRUD 操作 | C[后端 API]
|
||||
C -->|读写 | D[(MySQL 数据库)]
|
||||
E[官网首页] -->|GET /api/platform/upgrade/list| C
|
||||
C -->|返回数据 | E
|
||||
E -->|展示 | F[访客]
|
||||
```
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **数据库连接**: 确保数据库连接正常
|
||||
2. **路由注册**: 后端必须重启才能生效
|
||||
3. **权限配置**: 如需后台管理,需配置菜单权限
|
||||
4. **数据安全**: 建议对 HTML 内容进行 XSS 过滤
|
||||
5. **性能优化**: 大数据量时需考虑分页和缓存
|
||||
|
||||
## 🔄 后续优化建议
|
||||
|
||||
1. **分页功能**: 当前列表不分页,数据量大时需优化
|
||||
2. **富文本编辑器**: 管理页面可使用 Quill/CKEditor 等编辑器
|
||||
3. **版本对比**: 增加版本号字段,支持版本对比功能
|
||||
4. **附件上传**: 支持上传更新相关的安装包、文档等
|
||||
5. **分类标签**: 增加功能分类(CRM/OA/ERP/CMS)
|
||||
6. **统计功能**: 记录阅读量、点赞数等互动数据
|
||||
7. **推送通知**: 更新时自动通知用户
|
||||
|
||||
## 📞 联系方式
|
||||
|
||||
如有问题,请查阅:
|
||||
- 《平台更新功能说明.md》
|
||||
- 项目 README
|
||||
- 相关代码注释
|
||||
|
||||
---
|
||||
|
||||
**开发完成时间**: 2026-09-18
|
||||
**开发者**: AI Assistant
|
||||
**版本**: v1.0.0
|
||||
Reference in New Issue
Block a user