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,10 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/tui-modal/index"],{"04f4":function(t,e,n){"use strict";n.r(e);var a=n("cdf7"),u=n.n(a);for(var c in a)["default"].indexOf(c)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(c);e["default"]=u.a},"6b9f":function(t,e,n){"use strict";n.r(e);var a=n("a90c"),u=n("04f4");for(var c in u)["default"].indexOf(c)<0&&function(t){n.d(e,t,(function(){return u[t]}))}(c);n("eaa7");var i=n("828b"),l=Object(i["a"])(u["default"],a["b"],a["c"],!1,null,"3c22cc38",null,!1,a["a"],void 0);e["default"]=l.exports},a90c:function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return u})),n.d(e,"a",(function(){}));var a=function(){var t=this.$createElement;this._self._c},u=[]},cdf7:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a={name:"tuiModal",emits:["click","cancel"],props:{show:{type:Boolean,default:!1},title:{type:String,default:""},content:{type:String,default:""},cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确定"},maskClosable:{type:Boolean,default:!0},isMask:{type:Boolean,default:!0},maskColor:{type:String,default:"rgba(0, 0, 0, 0.6)"},fadeIn:{type:Boolean,default:!1},custom:{type:Boolean,default:!1},zIndex:{type:Number,default:9997},maskZIndex:{type:Number,default:9990}},data:function(){return{}},methods:{handleClick:function(t){this.show&&this.$emit("click",{index:Number(t)})},handleClickCancel:function(){this.maskClosable&&this.$emit("cancel")}}};e.default=a},da1e:function(t,e,n){},eaa7:function(t,e,n){"use strict";var a=n("da1e"),u=n.n(a);u.a}}]);
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'components/tui-modal/index-create-component',
{
'components/tui-modal/index-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('df3c')['createComponent'](__webpack_require__("6b9f"))
})
},
[['components/tui-modal/index-create-component']]
]);

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="{{['tui-modal__container','data-v-3c22cc38',show?'tui-modal-show':'']}}" style="{{'z-index:'+(zIndex)+';'}}"><view class="{{['tui-modal-box','data-v-3c22cc38',fadeIn||show?'tui-modal-normal':'tui-modal-scale',show?'tui-modal-show':'']}}"><block wx:if="{{!custom}}"><view class="data-v-3c22cc38"><block wx:if="{{title}}"><view class="tui-modal-title data-v-3c22cc38">{{title}}</view></block><view class="{{['tui-modal-content','data-v-3c22cc38',title?'':'tui-mtop']}}">{{content}}</view><view class="tui-modalBtn-box data-v-3c22cc38"><view data-event-opts="{{[['tap',[['handleClick',[0]]]]]}}" class="tui-modal-btn flex-center tui-modal-btn-cancel data-v-3c22cc38" bindtap="__e">{{cancelText}}</view><view data-event-opts="{{[['tap',[['handleClick',[1]]]]]}}" class="tui-modal-btn flex-center tui-modal-btn-confirm data-v-3c22cc38" bindtap="__e">{{confirmText}}</view></view></view></block><block wx:else><view class="data-v-3c22cc38"><slot></slot></view></block></view><block wx:if="{{isMask}}"><view data-event-opts="{{[['tap',[['handleClickCancel',['$event']]]],['touchmove',[['',['$event']]]]]}}" class="{{['tui-modal-mask','data-v-3c22cc38',show?'tui-mask-show':'']}}" style="{{'z-index:'+(maskZIndex)+';'+('background:'+(maskColor)+';')}}" bindtap="__e" catchtouchmove="__e"></view></block></view>

View File

@@ -0,0 +1 @@
.tui-modal__container.data-v-3c22cc38{width:100%;height:100%;position:fixed;left:0;top:0;display:flex;align-items:center;justify-content:center;visibility:hidden}.tui-modal-box.data-v-3c22cc38{position:relative;opacity:0;visibility:hidden;box-sizing:border-box;transition:all .3s ease-in-out;width:600rpx;padding:40rpx;border-radius:32rpx;background-color:#fff;z-index:9999}.tui-modal-scale.data-v-3c22cc38{-webkit-transform:scale(0);transform:scale(0)}.tui-modal-normal.data-v-3c22cc38{-webkit-transform:scale(1);transform:scale(1)}.tui-modal-show.data-v-3c22cc38{opacity:1;visibility:visible}.tui-modal-mask.data-v-3c22cc38{position:fixed;top:0;left:0;right:0;bottom:0;transition:all .3s ease-in-out;opacity:0;visibility:hidden}.tui-mask-show.data-v-3c22cc38{visibility:visible;opacity:1}.tui-modal-title.data-v-3c22cc38{text-align:center;font-size:32rpx;line-height:52rpx;color:#333;font-weight:500}.tui-modal-content.data-v-3c22cc38{text-align:center;color:#666;font-size:30rpx;line-height:40rpx;margin:24rpx auto 40rpx}.tui-mtop.data-v-3c22cc38{margin-top:30rpx}.tui-mbtm.data-v-3c22cc38{margin-bottom:30rpx}.tui-modalBtn-box.data-v-3c22cc38{width:100%;display:flex;align-items:center;justify-content:space-between}.tui-flex-column.data-v-3c22cc38{flex-direction:column}.tui-modal-btn.data-v-3c22cc38{width:244rpx;height:72rpx;border-radius:36rpx;font-size:26rpx}.tui-modal-btn-cancel.data-v-3c22cc38{border:1px solid var(--view-theme);color:var(--view-theme)}.tui-modal-btn-confirm.data-v-3c22cc38{background-color:var(--view-theme);color:#fff}