全部
常见问题
产品动态
精选推荐
功能建议

已处理 待处理 {{opt.name}}
已处理 待处理
分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
【bug反馈】PHP开源v8购物车连续输入数量时,最后输入值可能没有发送保存

管理 管理 编辑 删除

产品:PHP 开源版 v8;核查基于 GitHub v8.0.0 提交 42b234fe45750479355b2d9e59f9d15d593e03d9。2026-11-06 对照 Gitee v8.0 当前提交 923217340792033303e079cb53338e170242044e,相关购物车页面及小程序编译产物相同。


## 现象和验证边界


使用 AI 辅助核查官方源码,并用可执行脚本在原版函数及客户端请求边界复验:前一次保存请求未结束时继续修改数量,最后的输入会更新页面数量和合计,却可能没有作为更新请求发出。未在真实微信界面、服务端或数据库进行端到端验证,未操作线上订单和支付。


## 可复核步骤


1. 测试商品单价 10 元,库存不少于 23,加入购物车并勾选,初始数量为 1。

2. 将数量改为 2,在本次 cart/num 请求尚未完成时继续输入 3,使数量成为 23,再移开焦点。

3. 本地原版函数复现中,页面数量为 23、合计 230,但截获的更新请求仅有 number=2。前一请求完成后没有自动补发 23,非空输入失焦也没有补发。

4. 对照:等待第一次请求完成后再把数量改为 23,可以依次观察到 number=2 和 number=23 两次更新。


脚本实际输出:


```json

{"scenario":"before-ack","shown":"23","total":230,"sent":[["cart/num","2"]]}

{"scenario":"after-ack","shown":"23","total":230,"sent":[["cart/num","2"],["cart/num","23"]]}

```


这里的 sent 指本地在客户端请求边界截获的参数,不代表已在真实服务器收到或写入数据库。


## 原因线索与期望


iptCartNum 更新显示并调用 setCartNum;setCartNum 在 disabledChangeNumber 为 true 时直接返回。前一请求结束只释放标志,没有提交期间积累的最新输入;blurInput 只处理空值。已编译小程序也体现先写入输入值再调用处理函数的顺序。


期望最后一次有效输入能成功保存,或明确显示保存失败/尚未保存。可考虑按购物车条目保留最新待保存数量,当前请求结束后继续提交,并处理失败及失焦情形。这里只提供修复方向,尚未修改官方代码。


固定源码:


- https://github.com/crmeb/CRMEB/blob/42b234fe45750479355b2d9e59f9d15d593e03d9/frontend/uni-app/src/pages/order_addcart/order_addcart.vue

- https://github.com/crmeb/CRMEB/blob/42b234fe45750479355b2d9e59f9d15d593e03d9/frontend/uni-app/src/api/order.js

- https://github.com/crmeb/CRMEB/blob/42b234fe45750479355b2d9e59f9d15d593e03d9/backend/public/statics/mp-weixin/pages/order_addcart/order_addcart.js


## 复现材料


已准备 reproduce-crmeb-cart.cjs。它从本地 CRMEB Git 仓库的上述固定提交读取原版函数和编译产物,以可控的模拟请求执行两组断言,不向线上服务器发送请求;需要 Node.js 和 Git,无需数据库、微信账号或个人数据。


运行方式(第二个参数替换为本地仓库路径):


```text

node reproduce-crmeb-cart.cjs /path/to/CRMEB

```


公开检索没有找到同样步骤,但无法覆盖内部工单,不能保证首次报告。烦请协助判断是否已有记录,以及是否可按官方“找Bug、提需求拿红包”活动受理;如需要完整脚本或其他测试材料,可以继续补充。

{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

David 最后编辑于2026-11-06 17:08:30

快捷回复
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
62
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

{{replySubmitting ? '提交中...' : '回复'}}
{{replySubmitting ? '提交中...' : '回复'}}
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

{{ wechatLoginError }}
切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服