zhangjf
|
9b545b3f00
|
fix: 客户列表查询失败问题修复
**问题根因:**
1. PageResult返回字段list与前端期望records不一致
2. CustomerVO字段名与前端期望不一致
**修改内容:**
- fund-common: PageResult字段list改为records
- fund-cust: CustomerVO字段id改为customerId
- fund-mobile: 客户列表页面字段对齐
- fund-admin: 客户管理页面字段对齐
|
2026-02-23 13:26:07 +08:00 |
|
zhangjf
|
bd5f8ab468
|
fix: 数据库脚本与实体类一致性修复 + fund-admin Nginx子路径部署支持
1. 数据库脚本修复:
- fund_sys_init.sql: sys_config表添加group_code/group_name/sort_order/remark字段
- fund_proj_init.sql: 添加requirement表(需求工单)
- fund_exp_init.sql: 添加fund_expense表缺失字段
- 删除重复的doc/requirement.sql
2. fund-admin Nginx子路径部署支持:
- 新增.env.development/.env.production环境配置
- vite.config.ts支持VITE_BASE动态base路径
- router使用import.meta.env.BASE_URL
- API baseURL使用环境变量
- deploy-frontend-nginx.sh支持/fadmin部署前缀
3. 架构文档更新:
- 数据库设计文档新增4.4实体类与SQL脚本同步规范
- 新增4.5自动化检查机制
|
2026-02-23 00:12:39 +08:00 |
|
zhangjf
|
8490b7a2c6
|
fix: 全面修复网关路由与前端API路径一致性问题
问题分析:
1. 后端Controller路径不一致:
- fund-cust: /api/v1/customer (不是/api/v1/cust/customer)
- fund-proj: /api/v1/project (不是/api/v1/proj/project)
- fund-sys: /api/v1/auth 和 /api/v1/sys/* 两种路径
2. 之前的错误修改导致路径不匹配
解决方案:
- 网关: StripPrefix=1 + PrefixPath=/api/v1
- 前端: baseURL=/fund,路径直接对应后端路径
网关路由配置:
- fund-sys: /fund/auth/**,/fund/sys/** -> /api/v1/auth/*,/api/v1/sys/*
- fund-cust: /fund/customer/** -> /api/v1/customer/*
- fund-proj: /fund/project/**,/fund/requirement/** -> /api/v1/project/*,/api/v1/requirement/*
- fund-exp: /fund/exp/** -> /api/v1/exp/*
- fund-receipt: /fund/receipt/** -> /api/v1/receipt/*
- fund-report: /fund/report/** -> /api/v1/report/*
- fund-file: /fund/file/** -> /api/v1/file/*
前端API路径规范:
- 认证: /auth/login -> /api/v1/auth/login
- 用户: /sys/user/page -> /api/v1/sys/user/page
- 客户: /customer/page -> /api/v1/customer/page
- 项目: /project/page -> /api/v1/project/page
- 支出: /exp/expense/page -> /api/v1/exp/expense/page
- 收款: /receipt/receivable/page -> /api/v1/receipt/receivable/page
- 报表: /report/stats -> /api/v1/report/stats
- 文件: /file/upload -> /api/v1/file/upload
修改文件:
- fund-gateway/application.yml: 路由配置调整
- TenantGatewayFilter.java: 白名单路径修正
- TokenAuthFilter.java: 白名单路径修正
- fund-admin/src/api/*.ts: 所有API路径修正
- fund-mobile/src/api/index.ts: 所有API路径修正
- FileUpload组件: 上传路径修正
|
2026-02-22 23:06:54 +08:00 |
|
zhangjf
|
3b0b10d5b2
|
fix: 修复前端API路径与网关路由配置匹配
问题:前端API包含/api/v1导致路径重复
- 前端: /fund/sys/api/v1/auth/login
- 网关StripPrefix=2后: /api/v1/auth/login
- PrefixPath=/api/v1后: /api/v1/api/v1/auth/login ❌
修复:移除前端API中的/api/v1前缀
fund-admin修改:
- auth.ts: /sys/auth/login
- user.ts: /sys/sys/user/page
- tenant.ts: /sys/sys/tenant/page
- customer.ts: /cust/cust/customer/page
- project.ts: /proj/proj/project/page
- expense.ts: /exp/exp/expense/page
- receivable.ts: /receipt/receipt/receivable/page
- report.ts: /report/report/dashboard/stats
- file.ts: /file/file/upload
- menu.ts: /sys/sys/menu/tree
- role.ts: /sys/sys/role/page
- dept.ts: /sys/sys/dept/list
- config.ts: /sys/sys/config/page
- FileUpload组件: /fund/file/file/upload
fund-mobile修改:
- index.ts: 统一移除/api/v1,添加模块名重复
路由流程示例:
- 前端请求: /fund/sys/auth/login
- StripPrefix=2: /auth/login
- PrefixPath=/api/v1: /api/v1/auth/login ✓
|
2026-02-22 22:56:00 +08:00 |
|
zhangjf
|
797feff8c2
|
feat: fund-gateway增加/fund context path
修改内容:
1. fund-gateway/application.yml:
- 所有路由Path添加/fund前缀
- StripPrefix从1改为2(剥离/fund和模块名两级)
- 例:/fund/sys/... -> 转发到 /api/v1/sys/...
2. 前端API配置:
- fund-admin/src/api/request.ts: baseURL改为'/fund'
- fund-mobile/src/api/request.ts: baseURL改为'/fund'
3. Nginx部署脚本:
- 添加/fund/路径代理配置
- 保留/api/代理兼容旧版
API调用示例:
- 旧版:/sys/auth/login
- 新版:/fund/sys/auth/login
网关路由:
- /fund/sys/** -> lb://fund-sys/api/v1/sys/**
- /fund/cust/** -> lb://fund-cust/api/v1/cust/**
- ...
|
2026-02-22 22:24:20 +08:00 |
|
zhangjf
|
8190887de8
|
feat: 数据库脚本优化、前端部署脚本、租户ID支持
- 数据库脚本优化
- 新增01_create_user.sql创建fundsp用户
- 新增02_grant_user.sql授权脚本
- 新增fund_exp_init.sql、fund_receipt_init.sql
- 修复SQL脚本与实体类一致性
- 密码更新为fundSP@123
- 前端部署脚本
- 新增build-frontend.sh前端构建脚本
- 新增deploy-frontend-nginx.sh Nginx部署脚本
- 打包输出到deploy目录
- 租户ID支持
- fund-admin/fund-mobile支持query参数读取tid
- 新增tenant.ts store管理租户状态
- 请求拦截器添加X-Tenant-Id header
- 启动脚本修复
- 修复INSTANCE_NAME变量替换问题
- 更新所有service.properties配置
- 配置更新
- 更新所有服务数据库密码
- 更新docker-compose.yml配置
|
2026-02-22 19:45:52 +08:00 |
|
zhangjf
|
e2007d8b09
|
chore: 从Git追踪中移除target和.vscode目录
|
2026-02-20 11:02:45 +08:00 |
|
zhangjf
|
480c052ff1
|
feat: Docker容器化部署配置
- 添加所有后端服务的application-docker.yml配置文件
- 添加前端fund-admin和fund-mobile的Dockerfile和nginx配置
- 更新docker-compose.yml添加前端服务
- 添加.dockerignore优化构建
- 添加deploy.sh一键部署脚本
|
2026-02-20 10:13:52 +08:00 |
|
zhangjf
|
06efab9596
|
feat: 支出和应收款模块新增Excel导出功能
后端:
- fund-exp: 新增ExpenseExcel导出实体、导出接口和listExpenses方法
- fund-receipt: 新增ReceivableExcel导出实体、导出接口和listReceivables方法
前端:
- fund-admin: 支出管理页面新增导出按钮
- fund-admin: 应收款管理页面新增导出按钮
- fund-admin: 新增exportExpense和exportReceivable API
|
2026-02-20 08:36:20 +08:00 |
|
zhangjf
|
8e4afcd1a5
|
feat: TenantAwareLoadBalancer 整合 TenantRoutingProperties 配置
问题:TenantRoutingProperties 定义了配置但未被使用
解决方案:
1. TenantAwareLoadBalancer 注入 TenantRoutingProperties
- 使用配置的 tenantHeader 名称
- 使用配置的 buildTenantGroup 方法
- 使用配置的 isSharedService 判断
- 使用配置的 isFallbackToShared 策略
2. 新增功能
- 支持 enabled=false 禁用租户路由
- 共享服务跳过租户过滤
- 可配置是否回退到共享实例
3. 更新测试适配新构造函数
|
2026-02-19 21:02:25 +08:00 |
|
zhangjf
|
b3ef6d89f1
|
feat: 添加前端管理平台fund-admin并优化后端接口
- 新增fund-admin前端项目(Vue3 + TypeScript + Element Plus)
- 登录认证、用户信息获取
- 系统管理:用户、角色、部门、菜单
- 客户管理、项目管理、需求工单
- 支出管理、应收款管理
- Dashboard首页
- 浅色系侧边栏菜单、面包屑导航
- fund-sys: 添加获取用户信息接口
- fund-exp: 添加支出类型分页接口、修复路由顺序
- fund-proj: 修复路由顺序(/page放于/{id}之前)
- fund-receipt: 新增应收款管理功能
|
2026-02-17 20:35:18 +08:00 |
|
zhangjf
|
a17307a96e
|
feat: 完成资金服务平台六步实施 - 数据库初始化+服务启动+网关配置
本次提交包含:
1. 11个Maven模块全部创建并编译通过
2. 4个数据库初始化脚本(14张表)
3. fund-sys服务启动验证
4. Gateway路由配置完成
5. API端到端测试通过
核心能力:
- 多租户数据隔离(MyBatis-Plus)
- JWT认证+BCrypt密码
- 统一返回结构
- 参数校验
- OpenFeign示例
- API网关统一入口
修复:
- MyBatis-Plus与Spring Boot 3兼容性问题
- BaseEntity字段类型统一(Long)
- Gateway版本兼容性
|
2026-02-17 12:53:55 +08:00 |
|
zhangjf
|
297ea8e259
|
chore: 删除开发规则清单文档
按照规范,不应主动创建文档文件
|
2026-02-17 09:22:53 +08:00 |
|
zhangjf
|
32abc57338
|
feat: 添加开发规则清单和完善前后端配置
主要变更:
1. 开发规范文档
- 新增《开发规则清单.md》,涵盖技术栈、Maven配置、Lombok规范等
- 记录 Lombok 在 Java 21 + Spring Boot 3 中的已知问题
- 建立代码生成和开发流程规范
2. 前端功能增强
- 新增系统配置管理页面(sysConfig.vue)
- 新增数据字典管理页面(sysDict.vue)
- 新增财务收据管理页面(receipt.vue)
- 更新登录认证 API 配置
3. Docker 部署配置
- 新增应用容器配置(docker-compose.yml)
- 新增 Nginx 反向代理配置
- 新增 ELK 日志收集配置(Elasticsearch + Logstash + Filebeat)
4. 性能测试工具
- 新增 JMeter 测试计划(fundplatform-test-plan.jmx)
- 新增性能测试执行脚本
5. 环境配置更新
- 更新 .env 环境变量配置
- 同步 fundplatform 子模块最新提交
|
2026-02-17 09:19:14 +08:00 |
|
zhangjf
|
67832bd108
|
fix: 前端模块完整性修复
|
2026-02-16 10:40:13 +08:00 |
|
zhangjf
|
0eae7f2aaf
|
feat: 移动端适配(响应式优化)
|
2026-02-16 10:17:01 +08:00 |
|
zhangjf
|
7fe78d6c19
|
feat: 文件上传管理模块前端实现
前端实现:
- file.js: API接口封装(68行,6个接口)
- uploadFile(): 上传文件(multipart/form-data)
- getFileList(): 分页查询
- getFileListByBusiness(): 按业务查询
- getFileById(): 查询详情
- deleteFile(): 删除文件
- getFileUrl(): 获取URL
- file.vue: 文件管理页面(403行)
- 搜索功能:文件名、业务类型、关联业务ID
- 表格展示:文件ID、文件名(链接)、业务类型标签、关联ID、大小、类型、上传人、时间
- 上传功能:el-upload组件、业务类型选择、关联ID输入
- 预览功能:图片预览、PDF预览、其他文件提示
- 下载功能:获取URL后下载
- 删除功能:确认后删除
技术特点:
- 文件上传(multipart/form-data)
- 文件大小格式化(B/KB/MB/GB)
- 业务类型标签(合同/收款/支出/其他)
- 图片/PDF预览
- 文件选择对话框
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:57:31 +08:00 |
|
zhangjf
|
8ac97bb313
|
feat: 人员分配模块前端实现
前端实现:
- userAssignment.js: API接口封装(56行,5个接口)
- getUserAssignmentList(): 分页查询
- getUserListByDept(): 按部门查询
- assignUser(): 分配用户
- batchAssignUsers(): 批量分配
- removeUserAssignment(): 移除分配
- userAssignment.vue: 人员分配页面(408行)
- 搜索功能:用户名、真实姓名、部门(树选择)、岗位、状态
- 表格展示:用户信息、部门标签、岗位标签、职位、状态
- 批量操作:多选批量分配
- 筛选功能:仅显示未分配用户
- 分配对话框:部门树选择、岗位下拉、职位输入
- 移除分配:确认后移除部门/岗位关联
技术特点:
- 多条件组合搜索
- 表格多选(el-table selection)
- 部门树选择器
- 岗位下拉选择
- 状态标签展示
- 批量分配优化
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:48:22 +08:00 |
|
zhangjf
|
84adda022e
|
feat: 岗位管理模块前端实现
前端实现:
- post.js: API接口封装(86行,8个接口)
- getPostList(): 分页查询
- getPostListByDept(): 按部门查询
- getPostListEnabled(): 获取启用的岗位
- getPostById(): 查询详情
- createPost(): 创建岗位
- updatePost(): 更新岗位
- deletePost(): 删除岗位
- updatePostStatus(): 更新状态
- post.vue: 岗位管理页面(416行)
- 搜索功能:岗位编码、名称、所属部门(树选择)、状态
- 表格展示:编码、名称、部门、职责、排序、状态、时间
- 状态开关:el-switch直接切换状态
- 新增/编辑对话框:
* 岗位编码、名称(必填)
* 所属部门(树选择器)
* 岗位职责、岗位要求(多行文本)
* 排序号、状态、备注
技术特点:
- 部门树选择器(el-tree-select)
- 状态开关(el-switch)
- 表单验证(必填项)
- 删除确认
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:40:00 +08:00 |
|
zhangjf
|
81e919ad3c
|
feat: 数据统计分析模块前端实现
前端实现:
- dashboard.js: API接口封装(13行)
- dashboard/index.vue: 仪表盘页面(576行)
页面布局:
1. 概览卡片(4个)
- 项目总数(含本月新增)
- 客户总数(含本月新增)
- 合同总数
- 需求工单数
2. 收支概览(3个)
- 总收入(含本月收入)
- 总支出(含本月支出)
- 净利润(含利润率)
3. 应收款概览(3个)
- 应收款总额
- 待收款金额(橙色警示)
- 逾期金额(红色警示)
4. 图表区域(4个)
- 收支趋势折线图(最近12个月)
- 项目状态分布饼图
- 支出类型分布饼图
- 应收款状态分布饼图
技术特点:
- ECharts图表库:折线图、环形饼图
- 响应式设计:窗口大小变化自动重绘
- 渐变色卡片:现代化UI设计
- 金额格式化:千分位分隔、保留2位小数
- 图表tooltip:金额/百分比格式化显示
- 组件销毁时清理资源
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:35:23 +08:00 |
|
zhangjf
|
d8dcbd0ef2
|
feat: 操作日志管理前端实现
前端实现:
- operationLog.js: API接口封装(44行,4个接口)
- operationLog.vue: 管理页面(351行)
页面特点:
- 搜索:模块、操作类型、操作人、时间范围
- 表格:模块、操作类型(标签)、请求信息、执行时长、状态
- 详情:完整的请求参数、响应结果、错误信息
- 批量清理:删除N天前的日志(7-365天)
操作类型:查询/新增/更新/删除/导入/导出/登录/登出
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:07:37 +08:00 |
|
zhangjf
|
588ef25869
|
feat: 项目成员管理前端页面实现
前端实现:
- projectMember.js: API接口封装(7个接口)
- projectMember.vue: 项目成员管理页面
页面特点:
- 以项目为维度管理成员
- 角色类型:项目经理/开发/测试/财务/普通成员
- 状态管理:在职/已离开
- 工作量占比:0-100%
模块状态:✅ 完整(前端+后端)
|
2026-02-16 09:03:00 +08:00 |
|
zhangjf
|
a119826173
|
feat: 应收款管理优化 - 需求和客户改为下拉选择
功能优化:
- 将需求ID输入框改为需求工单下拉选择
- 将客户ID输入框改为客户下拉选择
- 添加需求和客户数据加载逻辑
前端改进:
1. 表单优化:
- 需求工单:下拉选择,显示需求名称
- 客户:下拉选择,显示客户名称
- 添加 clearable 支持清空
2. 表格优化:
- 新增需求工单列,显示需求名称
- 新增客户列,显示客户名称
- 调整列宽和顺序
3. 数据加载:
- loadRequirements(): 加载需求列表
- loadCustomers(): 加载客户列表
- getRequirementName(): 根据ID获取需求名称
- getCustomerName(): 根据ID获取客户名称
4. 表单验证:
- 更新验证提示:'请选择需求工单' / '请选择客户'
- 触发方式改为 'change'
用户体验提升:
- 更直观的下拉选择替代手动输入ID
- 表格显示名称而不是ID,更易读
- 支持搜索和清空选择
表格列顺序(优化后):
应收款编号 > 需求工单 > 客户 > 项目 > 应收款金额 > 已收款金额 > 未收款金额 > 应收款日期 > 付款截止日期 > 状态 > 逾期天数 > 创建时间 > 操作
|
2026-02-15 20:22:51 +08:00 |
|
zhangjf
|
db7a34f4f3
|
fix: 添加需求工单和财务管理菜单到前端侧边栏
问题:
- 前端菜单硬编码,缺少需求工单和财务管理模块
- 用户看不到这些功能的入口
根本原因:
- Layout.vue中的菜单是硬编码的,没有从后端动态加载
- 缺少需求工单、支出类型、支出管理、应收款管理的菜单项
修复内容:
1. 在项目管理下添加「需求工单」菜单项
2. 新增「财务管理」一级菜单
3. 在财务管理下添加:
- 支出类型
- 支出管理
- 应收款管理
4. 导入Money图标
菜单结构(修复后):
- 首页
- 系统管理
- 用户管理、角色管理、菜单管理
- 客户中心
- 客户管理、联系人管理
- 项目管理
- 项目管理、合同管理、需求工单 ✨
- 财务管理 ✨
- 支出类型、支出管理、应收款管理
现在刷新页面即可看到完整菜单!
|
2026-02-15 20:12:18 +08:00 |
|
zhangjf
|
504da52c88
|
fix: 修复项目管理前端字段与后端Entity不匹配问题
问题:
- 项目金额在新增和编辑时不会更新
- 前端表单字段与后端Entity字段不一致
- projectAmount不存在于后端,应该是budgetAmount和contractAmount
- projectManager应该是projectManagerId (Long类型)
- projectDesc应该是description
修复:
1. 修正前端表单字段
- projectAmount → budgetAmount (预算金额)
- 新增 contractAmount (合同金额)
- projectManager → projectManagerId
- projectDesc → description
- 新增 projectShort, projectType, remark等字段
2. 优化表单UI
- 添加项目简称字段
- 添加项目类型下拉选择(开发/维护/咨询)
- 预算金额和合同金额分开显示
- 添加备注字段
3. 修正表格显示列
- 项目金额 → 预算金额 + 合同金额(两列)
现在前后端字段完全一致!
|
2026-02-15 19:44:47 +08:00 |
|
zhangjf
|
2b5ab61668
|
fix: 修复联系人管理API路径不一致问题
问题:
- 前端API使用旧路径 /cust/api/v1/customer-contact
- 后端已改为 /cust/api/v1/contact
- getContactList接口参数不匹配(单个customerId vs params对象)
修复:
- 统一前端API路径为 /cust/api/v1/contact
- 修改getContactList为分页查询接口,支持params参数
- 修改前端页面调用方式,传递完整的查询参数
- 支持按客户ID和联系人姓名筛选
现在前后端API路径完全一致!
|
2026-02-15 19:11:01 +08:00 |
|
zhangjf
|
abded8ec75
|
feat: 完成所有前端页面和路由配置
项目成员管理:
- 创建 projectMember.vue 页面(318行)
- 按项目查询成员列表
- 添加/编辑/移除成员
- 角色选择(项目经理/开发/测试/财务/普通成员)
- 工作量占比滑块
- 状态管理(在职/已离开)
应收款管理:
- 创建 receivable.vue 页面(475行)
- 多条件搜索(编号、项目、状态)
- 表格展示(应收款金额、已收款金额、未收款金额、逾期天数)
- 新增/编辑应收款
- 记录收款功能
- 逾期提醒(红色显示)
- 状态标签(待收款/部分收款/已收款/逾期)
路由配置:
- 添加项目成员管理路由(/project/member)
- 添加应收款管理路由(/finance/receivable)
所有核心模块前端页面全部完成!✅
|
2026-02-15 18:32:52 +08:00 |
|
zhangjf
|
0323717110
|
feat: 完成应收款管理模块
后端:
- 创建 Receivable 实体类(应收款编号、需求ID、项目ID、客户ID、金额、状态、逾期天数)
- 创建 ReceivableMapper 接口
- 创建 ReceivableService 业务逻辑层
- 分页查询、保存/更新应收款
- 自动计算未收款金额和逾期天数
- 记录收款并自动更新状态
- 创建 ReceivableController 控制器(RESTful API)
前端:
- 创建 receivable.js API 文件(7个接口)
应收款管理模块核心功能完成!✅
|
2026-02-15 18:29:37 +08:00 |
|
zhangjf
|
6742515446
|
feat: 完成项目成员管理模块后端和API
后端:
- 创建 ProjectMember 实体类(项目ID、用户ID、角色、日期、工作量、状态)
- 创建 ProjectMemberMapper 接口
- 创建 ProjectMemberService 业务逻辑层(按项目查询、按用户查询、添加/更新/移除成员、状态管理)
- 创建 ProjectMemberController 控制器(RESTful API)
前端:
- 创建 projectMember.js API 文件(7个接口)
项目成员管理模块后端完成!✅
|
2026-02-15 18:26:17 +08:00 |
|
zhangjf
|
fe3230eb9c
|
feat: 完成支出管理模块前端开发
- 创建 expense.js API 文件(完整的 CRUD 接口)
- 创建 expense.vue 管理页面
- 多条件搜索(支出编号、支出类型、项目、状态)
- 表格展示(支出编号、类型、金额、日期、事由、项目、付款方式、状态)
- 新增/编辑表单(支持金额、日期、事由、项目、付款方式等管理)
- 状态更新对话框(待付款/已付款/已完成/已作废)
- 支出类型树形选择
- 项目下拉选择
- 添加支出管理路由配置(/finance/expense)
支出管理模块全栈开发完成!✅
|
2026-02-15 18:20:59 +08:00 |
|
zhangjf
|
8aaf7a15bd
|
feat: 完成支出类型管理模块
后端:
- 创建 ExpenseType 实体类(支持树形结构)
- 创建 ExpenseTypeMapper 接口
- 创建 ExpenseTypeService 业务逻辑层
- 获取支出类型树(仅启用/包含禁用)
- 新增/更新/删除支出类型
- 级联删除子类型
- 自动计算层级
- 状态管理
- 创建 ExpenseTypeController 控制器
前端:
- 创建 expenseType.js API 文件
- 创建 expenseType.vue 管理页面
- 树形表格展示
- 支持添加子类型
- 状态启用/禁用切换
- 上级类型选择(el-tree-select)
- 添加财务管理模块路由
|
2026-02-15 18:14:21 +08:00 |
|
zhangjf
|
9c00696baf
|
feat: 完成需求工单管理模块(全栈开发)
后端:
- 创建 Requirement 实体类(映射 requirement 表)
- 创建 RequirementMapper 接口(含自定义查询)
- 创建 RequirementService 业务逻辑层
- 分页查询(支持多条件筛选)
- 新增/更新/删除需求
- 更新需求状态和进度
- 自动设置默认租户ID
- 创建 RequirementController 控制器
- RESTful API 设计
- 状态管理和进度跟踪
前端:
- 创建 requirement.js API 文件(完整的 CRUD 接口)
- 创建 requirement.vue 管理页面
- 多条件搜索(需求名称、项目、客户、状态)
- 表格展示(含状态标签、优先级标签、进度条)
- 新增/编辑表单(支持工时、日期、应收款管理)
- 状态更新对话框
- 进度更新对话框(滑块组件)
- 项目和客户下拉选择
- 添加路由配置(/project/requirement)
|
2026-02-15 18:06:20 +08:00 |
|
zhangjf
|
1a47943b10
|
feat: 完成项目管理和合同管理前端页面优化
部门管理:
- ✅ dept.js API文件
- ✅ dept.vue 树形表格页面
- ✅ 路由配置
项目管理:
- ✅ project.js API文件(修复updateProjectStatus接口)
- ✅ list.vue 页面优化(await fetchData、错误处理)
合同管理:
- ✅ contract.js API文件(独立出来)
- ✅ contract.vue 页面优化(修复导入路径、await fetchData、错误处理)
优化内容:
1. 统一使用 await fetchData() 确保刷新完成
2. 改进表单验证逻辑(Promise方式)
3. 添加明确的错误提示
4. 删除操作优化(删除最后一条自动返回上一页)
5. 统一代码风格和最佳实践
|
2026-02-15 17:58:35 +08:00 |
|
zhangjf
|
bcd163a093
|
feat: 完成部门管理前端页面
功能:
- dept.js API文件:部门CRUD接口
- dept.vue 页面:树形表格展示部门层级
- 支持添加子部门、编辑、删除
- 上级部门选择(树形下拉)
- 表单验证和错误处理
- 路由配置:/system/dept
|
2026-02-15 17:56:23 +08:00 |
|
zhangjf
|
29207d2e3c
|
fix: 改进用户管理页面的刷新逻辑和错误处理
优化内容:
1. 所有 fetchData 调用改为 await fetchData() 确保等待刷新完成
2. 改进表单验证逻辑,分离验证和提交逻辑
3. 添加更明确的错误提示信息
4. 删除操作优化:删除最后一条时自动返回上一页
5. 重置密码后也刷新列表(虽然不影响显示)
修复后确保:
- 添加用户后立即刷新列表
- 编辑用户后立即刷新列表
- 启用/禁用用户后立即刷新列表
- 删除用户后立即刷新列表
|
2026-02-15 17:51:04 +08:00 |
|
zhangjf
|
64b8f42d5a
|
fix: 改进前端表单验证和错误处理
优化内容:
1. 角色管理和菜单管理的 handleSubmit 增加表单验证错误捕获
2. 修复角色分配菜单时的数据访问错误(menuRes.data -> menuRes)
3. 添加 console.error 日志便于调试
4. 统一错误提示信息
这样在表单验证失败或请求失败时,用户可以看到明确的错误提示
|
2026-02-15 17:02:33 +08:00 |
|
zhangjf
|
db4d89144d
|
fix: 修复前端页面数据加载问题
问题原因:
- request.js 响应拦截器已经提取了 res.data
- 但页面代码中还在使用 res.data.records/res.data.total
- 导致实际访问的是 undefined
修复内容:
- role.vue: res.data.records -> res.records
- menu.vue: res.data -> res
- contact.vue: res.data.records -> res.records, res.data -> res
现在页面可以正确加载数据了
|
2026-02-15 16:59:39 +08:00 |
|
zhangjf
|
bf63820546
|
fix: 增强前端请求拦截器对401响应的处理
- 在响应拦截器中明确处理 code=401 的业务响应
- 自动清理 Token 并跳转到登录页
- 避免401响应被当作普通业务失败处理
|
2026-02-15 16:54:33 +08:00 |
|
zhangjf
|
7f776d87ea
|
fix: 修正 menu.js 和 role.js 中 request 导入路径
- 从 './request' 改为 '../utils/request'
- 与其他 API 文件保持一致
|
2026-02-15 16:42:51 +08:00 |
|
zhangjf
|
7672f008ef
|
feat: 完善前端页面 - 角色管理、菜单管理、联系人管理功能
新增功能:
1. 角色管理
- 分页列表查询,支持按角色名称和状态筛选
- 新增/编辑角色,包含角色编码、名称、类型、数据范围等字段
- 删除角色
- 分配菜单权限(树形选择)
2. 菜单管理
- 树形表格展示菜单层级结构
- 新增/编辑菜单,支持目录、菜单、按钮三种类型
- 添加子菜单
- 删除菜单(检查子菜单)
3. 联系人管理
- 按客户查询联系人列表
- 新增/编辑联系人,包含姓名、职位、部门、电话、邮箱等
- 设置主联系人
- 删除联系人
技术优化:
- 创建 role.js 和 menu.js API 接口文件
- 修复 RoleController 分配菜单接口(POST + @RequestBody)
- 统一表单验证和错误提示
- 优化树形组件数据处理
|
2026-02-15 16:33:10 +08:00 |
|
zhangjf
|
ed19ab4739
|
feat: 完善前端页面 - 客户管理、项目管理、合同管理、用户管理完整功能
|
2026-02-15 16:28:56 +08:00 |
|
zhangjf
|
69a3d62c3e
|
feat: 前端联调配置 - Vite代理配置支持/sys/cust/proj路由
|
2026-02-15 16:21:16 +08:00 |
|
zhangjf
|
023349480f
|
feat: 配置Gateway路由和API路径 - 统一路由前缀/sys/cust/proj
|
2026-02-15 13:45:16 +08:00 |
|
zhangjf
|
246a8c17f4
|
feat: 创建fund-admin前端项目 - Vue3+ElementPlus管理后台
|
2026-02-15 13:39:53 +08:00 |
|