feat(fsgx): 完成全部24项开发任务 Phase1-7

Phase1 后端核心:
- 新增 fsgx_v1.sql 迁移脚本(is_queue_goods/frozen_points/available_points/no_assess)
- SystemConfigServices 返佣设置扩展(周期人数/分档比例/范围/时机)
- StoreOrderCreateServices 周期循环佣金计算
- StoreOrderTakeServices 佣金发放后同步冻结积分
- StoreProductServices/StoreProduct 保存 is_queue_goods

Phase2 后端接口:
- GET /api/hjf/brokerage/progress 佣金周期进度
- GET /api/hjf/assets/overview 资产总览
- HjfPointsServices 每日 frozen_points 0.4‰ 释放定时任务
- PUT /adminapi/hjf/member/{uid}/no_assess 不考核接口
- GET /adminapi/hjf/points/release_log 积分日志接口

Phase3 前端清理:
- hjfCustom.js 路由精简(仅保留 points/log)
- hjfQueue.js/hjfMember.js API 清理/重定向至 CRMEB 原生接口
- pages.json 公排→推荐佣金/佣金记录/佣金规则

Phase4-5 前端改造:
- queue/status.vue 推荐佣金进度页整体重写
- 商品详情/订单确认/支付结果页文案与逻辑改造
- 个人中心/资产页/引导页/规则页文案改造
- HjfQueueProgress/HjfRefundNotice/HjfAssetCard 组件改造
- 推广中心嵌入佣金进度摘要
- hjfMockData.js 全量更新(公排字段→佣金字段)

Phase6 Admin 增强:
- 用户列表新增 frozen_points/available_points 列及不考核操作按钮
- hjfPoints.js USE_MOCK=false 对接真实积分日志接口

Phase7 配置文档:
- docs/fsgx-phase7-config-checklist.md 后台配置与全链路验收清单

Made-with: Cursor
This commit is contained in:
apple
2026-03-23 22:32:19 +08:00
parent 788ee0c0c0
commit 434aa8c69d
13098 changed files with 2008990 additions and 961 deletions

View File

@@ -0,0 +1,54 @@
# Conversation - 2026-03-10 18:01:00
## Prompt
创建组件 HjfAssetCard.vue
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/components/HjfAssetCard.vue
内容要求:
1. 使用 Vue 2 Options API
2. Props: nowMoney(String), frozenPoints(Number), availablePoints(Number), todayRelease(Number)
3. 模板: 渐变背景卡片,三栏展示:现金余额(¥) / 待释放积分 / 已释放积分 + 今日预计释放
4. 样式: <style scoped lang="scss">,渐变背景使用 linear-gradientrpx 单位
5. 参考: docs/frontend-new-pages-spec.md 第 3.2.3 节,参考 pro_v3.5.1/view/uniapp/pages/users/user_money/index.vue
完整 JSDoc 注释。
## Response
已按规范写好并保存 `HjfAssetCard.vue`,主要如下:
**1. Vue 2 Options API**
- `name: 'HjfAssetCard'``props``computed` 定义完整。
**2. Props含 JSDoc**
- `nowMoney` (String),默认 `'0.00'`
- `frozenPoints` (Number),默认 `0`
- `availablePoints` (Number),默认 `0`
- `todayRelease` (Number),默认 `null`(为 null 时不显示底部“今日预计释放”)
**3. 模板**
- 渐变背景卡片内三栏:**现金余额(¥)**、**待释放积分**、**已释放积分**。
-`todayRelease` 时在底部展示:“今日预计释放 X 积分”。
**4. 样式scoped SCSS、rpx**
-`user_money/index.vue` 一致:`linear-gradient(90deg, var(--view-theme) 0%, var(--view-gradient) 100%)``border-radius: 32rpx`,宽度 `710rpx`
- 底部提示条使用 `rgba(255,255,255,0.1)`,与参考页 `.cumulative` 一致。
- 金额保留两位小数;积分为整数展示(`toLocaleString()`)。
**5. JSDoc**
- 文件头:`@file``@description``@see` 指向 `docs/frontend-new-pages-spec.md` 3.2.3 与 `user_money/index.vue`
- 每个 prop 有 `@type``@default` 说明。
使用示例:
```vue
<HjfAssetCard
now-money="7200.00"
:frozen-points="15000"
:available-points="3200"
:today-release="6"
/>
```

View File

@@ -0,0 +1,57 @@
# Conversation - 2026-03-10 18:02:44
## Prompt
创建组件 HjfMemberBadge.vue
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/components/HjfMemberBadge.vue
内容要求:
1. 使用 Vue 2 Options API
2. Props: level(Number), levelName(String), size(String 默认'normal',可选'small'/'normal'/'large')
3. 模板: 显示会员等级图标 + 等级名称
4. 等级颜色映射:
- 0(普通): 灰色 #999999
- 1(创客): 铜色 #CD7F32
- 2(云店): 银色 #C0C0C0
- 3(服务商): 金色 #FFD700
- 4(分公司): 紫色 #8B5CF6
5. 三种尺寸样式: small/normal/large
6. 参考: docs/frontend-new-pages-spec.md 第 3.2.4 节
完整 JSDoc 注释。
## Response
已按你的要求补全并整理 `HjfMemberBadge.vue`,当前实现如下。
**1. Vue 2 Options API**
- 使用 `export default { name, props, computed }`,无 `setup`
**2. Props**
- `level`Number04默认 0带 validator。
- `levelName`String默认 `''`
- `size`String默认 `'normal'`,可选 `'small'` / `'normal'` / `'large'`,带 validator。
**3. 模板**
- 会员等级图标(圆形徽章内显示等级数字)+ 右侧等级名称 `displayName`
**4. 等级颜色**
- 0 普通 `#999999`
- 1 创客 `#CD7F32`
- 2 云店 `#C0C0C0`
- 3 服务商 `#FFD700`
- 4 分公司 `#8B5CF6`
**5. 三种尺寸**
- `size-small`:图标 32rpx名称 22rpx。
- `size-normal`:图标 40rpx名称 26rpx。
- `size-large`:图标 52rpx名称 30rpx。
**6. 规范与 JSDoc**
-`docs/frontend-new-pages-spec.md` 第 3.2.4 节一致。
- 已补充完整 JSDoc组件说明、`@component``@example`;常量 `LEVEL_COLORS``LEVEL_NAMES``@constant` / `@type`;每个 prop 的 `@type``@default`computed 的简要说明。
等级 0 的默认展示名称已与文档统一为「普通」(原为「普通会员」)。
文件路径:`/Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/components/HjfMemberBadge.vue`

View File

@@ -0,0 +1,57 @@
# Conversation - 2026-03-10 18:04:22
## Prompt
创建组件 HjfRefundNotice.vue
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/components/HjfRefundNotice.vue
内容要求:
1. 使用 Vue 2 Options API
2. Props: visible(Boolean), amount(Number), orderId(String)
3. Events: @close
4. 模板: 弹窗提示'恭喜!您的公排订单已退款',显示退款金额(¥3,600.00格式)和订单号,确认按钮关闭弹窗
5. 使用 uni.showModal 或自定义弹窗样式
6. 参考: docs/frontend-new-pages-spec.md 第 2.2.3 节
完整 JSDoc 注释。
## Response
`HjfRefundNotice.vue` 已按规范更新,主要实现如下:
### 实现要点
1. **Vue 2 Options API**:使用 `props``computed``methods`
2. **Props**
- `visible` (Boolean):是否显示弹窗
- `amount` (Number):退款金额
- `orderId` (String):订单号
3. **Events**:点击确认或遮罩时触发 `@close`,父组件需在 `@close` 中把 `visible` 设为 `false`
4. **模板内容**
- 主文案:`恭喜!您的公排订单已退款`
- 副文案:`已入账到现金余额`
- 退款金额:`¥3,600.00`(千分位 + 两位小数)
- 订单号:有则显示
- 确认按钮:点击后关闭弹窗
5. **自定义弹窗**:使用自定义弹窗样式,符合规范 2.2.3 节。
6. **JSDoc**为组件、props、computed、methods 添加了 JSDoc 注释。
7. **样式**:使用 `rpx``scoped``lang="scss"`,并支持 `var(--view-gradient)` 主题变量。
### 使用示例
```vue
<HjfRefundNotice
:visible="showRefundNotice"
:amount="3600"
order-id="HJF202603100001"
@close="showRefundNotice = false"
/>
```

View File

@@ -0,0 +1,57 @@
# Conversation - 2026-03-10 17:58:54
## Prompt
创建组件 HjfQueueProgress.vue
文件路径: /Users/apple/scott2026/huangjingfen/pro_v3.5.1/view/uniapp/components/HjfQueueProgress.vue
内容要求:
1. 使用 Vue 2 Options API
2. Props: currentCount(Number), triggerMultiple(Number, 默认4), nextRefundNo(Number)
3. 计算属性: progressPercent 计算进度百分比
4. 模板: 进度条展示 currentCount/triggerMultiple显示下一个退款序号
5. 样式: <style scoped lang="scss">,使用 CSS 变量 var(--view-theme)rpx 单位
6. 参考: docs/frontend-new-pages-spec.md 第 2.2.2 节
完整 JSDoc 注释。
## Response
已按你的要求和 `docs/frontend-new-pages-spec.md` 第 2.2.2 节写好并覆盖 `HjfQueueProgress.vue`,要点如下:
**1. Vue 2 Options API**
- 使用 `props``computed`,无 `data`/`methods`
**2. Props**
- `currentCount`Number默认 `0`
- `triggerMultiple`Number默认 `4`
- `nextRefundNo`Number默认 `null`(有值时才显示「下一退款序号」)
**3. 计算属性 `progressPercent`**
- 公式:`(currentCount / triggerMultiple) * 100`,限制在 0100保留一位小数。
- `ringStyle``barStyle` 都基于 `progressPercent` 生成样式。
**4. 模板**
- 环形进度:中间显示 `currentCount/triggerMultiple`
- 条形进度:轨道 + 按 `progressPercent` 填充,下方文案同样为 `currentCount/triggerMultiple`
- `nextRefundNo != null` 时显示「下一退款序号: {{ nextRefundNo }}」
**5. 样式**
- `<style scoped lang="scss">`,单位用 `rpx`,主题色用 `var(--view-theme)`(环形、条形、进度数值颜色一致)。
**6. JSDoc**
- 文件头:`@file``@description``@see` 规范 2.2.2
- 每个 prop`@type` 与说明
- 每个 computed`@returns` 与说明
使用示例:
```vue
<HjfQueueProgress
:current-count="2"
:trigger-multiple="4"
:next-refund-no="39"
/>
```