885 Commits
Author SHA1 Message Date
Your Name 08892f4270 gengx 2026-11-12 16:11:43 +08:00
Your Name 775d955577 Merge branch 'master' into 11-5 2026-11-12 14:30:59 +08:00
gr e3a73dd29d gex 2026-11-12 14:30:25 +08:00
Your Name 2ea462aa31 gengx 2026-11-12 14:27:49 +08:00
gr 7665725766 i更新 2026-11-12 14:26:54 +08:00
Your Name b9ac9a6635 Merge branch 'master' into 11-5
# Conflicts:
#	server/public/admin/assets/.pnpm-Cy9nIqIg.js
#	server/public/admin/assets/403-DZv43rg8.js
#	server/public/admin/assets/404-BdEnY8Op.js
#	server/public/admin/assets/@tencentcloud/call-engine-js-DC0nMlpX.js
#	server/public/admin/assets/@tencentcloud/chat-BgZr4keH.js
#	server/public/admin/assets/@tencentcloud/chat-uikit-engine-D2vNRuTA.js
#	server/public/admin/assets/AppointmentRecordPanel-BLiYiAbY.js
#	server/public/admin/assets/AssignLogPanel-B37Pa478.js
#	server/public/admin/assets/AssistantWatchCallDialog-CwSHnJSG.js
#	server/public/admin/assets/BloodRecordList-Drn0jNIG.js
#	server/public/admin/assets/CaseRecordList-DOWsaiL5.js
#	server/public/admin/assets/ConsultationTranscriptPanel-fqClePUL.js
#	server/public/admin/assets/DailyMatrix-B_BuE6Wk.js
#	server/public/admin/assets/DiagnosisTodoList-BvKuWevJ.js
#	server/public/admin/assets/DietRecordList-CNcxCdHz.js
#	server/public/admin/assets/ExerciseRecordList-DcrDxj4-.js
#	server/public/admin/assets/FollowupAudioField-DwFRovp6.js
#	server/public/admin/assets/FollowupAudioPanel-161TbfEd.js
#	server/public/admin/assets/FollowupAudioReview-DUx7pf7f.js
#	server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-8OIk4lHB.js
#	server/public/admin/assets/ImChatRecordPanel-DHff4nFV.js
#	server/public/admin/assets/MediaSourceSelect-DAiidBXd.js
#	server/public/admin/assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-BnUzDRdh.js
#	server/public/admin/assets/MessageBubble-bYTr-oyb.js
#	server/public/admin/assets/NoteTimeline-jPsAfPnk.js
#	server/public/admin/assets/OrderActionHost-CM9FpHNh.js
#	server/public/admin/assets/OrderPanel-Co_XYZDR.js
#	server/public/admin/assets/PatientCaseCard-CDC9oDgL.js
#	server/public/admin/assets/PatientInfoCard-wIayMpdX.js
#	server/public/admin/assets/PatientOrderList-C0nBgRYQ.js
#	server/public/admin/assets/PrescriptionAiBatchGenerateDialog--28G2reg.js
#	server/public/admin/assets/PrescriptionAiReportDialog-BElqcJhz.js
#	server/public/admin/assets/PrescriptionOrderDetailDrawer-C1YLaoua.js
#	server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-zSycYEpH.js
#	server/public/admin/assets/ProgressPanel-DuOaWdPj.js
#	server/public/admin/assets/PromotionAutomationForm-CEi-wURu.js
#	server/public/admin/assets/RecordingPlaybackBlock-B1YEgQib.js
#	server/public/admin/assets/RecordingVideoPlayer-CzGfJLYq.js
#	server/public/admin/assets/SendPanel-C81B60j9.js
#	server/public/admin/assets/TrackingMatrix-Dvlry4c2.js
#	server/public/admin/assets/TrackingNoteTimeline-CcOnnAQR.js
#	server/public/admin/assets/WecomFloatingWidgetBuilder-BZ1rtSPX.js
#	server/public/admin/assets/WelcomeMessageEditor-FXBSgF_s.js
#	server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-BDg3Vt-5.js
#	server/public/admin/assets/account_cost-1Kig3__5.js
#	server/public/admin/assets/add-CnMHBvcC.js
#	server/public/admin/assets/admin-mWKPRS5Z.js
#	server/public/admin/assets/ai_mcp-BdB18eax.js
#	server/public/admin/assets/appointment-BABD2Tar.js
#	server/public/admin/assets/article-B2IS97ge.js
#	server/public/admin/assets/asset-fny0UJmY.js
#	server/public/admin/assets/attr-BO203wr6.js
#	server/public/admin/assets/attr-CYxX_t_S.js
#	server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-BK3AJqkU.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-C1vfB9ju.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CA3Eqz_I.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CISdFe5h.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CfyBAgmS.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-LP4IWWFR.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-R-6FX7Mu.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-bgUhDqjK.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-hGjVuUay.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-hudO2m34.js
#	server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-i4BbFcAt.js
#	server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-BoZeVoZP.js
#	server/public/admin/assets/balance_details-DOLi1Dm0.js
#	server/public/admin/assets/bind-work-wechat-DFHKss6n.js
#	server/public/admin/assets/cache-nfUb4Iya.js
#	server/public/admin/assets/change-password-CeOlId8o.js
#	server/public/admin/assets/code-B18aVPXd.js
#	server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-DGCCjmlM.js
#	server/public/admin/assets/commission-settlement-CdEu_C9J.js
#	server/public/admin/assets/commission-settlement-CdlIY0iL.css
#	server/public/admin/assets/config-J5lzqSHX.js
#	server/public/admin/assets/consumer-BpKM0EGl.js
#	server/public/admin/assets/content-69Fk_4pj.js
#	server/public/admin/assets/content-BKD0OzuH.js
#	server/public/admin/assets/content-CBy84fnS.js
#	server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-AQZfsEkF.js
#	server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-BlBOVIVr.js
#	server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-ByXjA9a8.js
#	server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DBQ1TxzP.js
#	server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DSdHmkxS.js
#	server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-CFW87alA.js
#	server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-DLwRo6Tk.js
#	server/public/admin/assets/dayjs-LzqDqVlD.js
#	server/public/admin/assets/decoration-DiTN-PkH.js
#	server/public/admin/assets/decoration-img-BHQwkVvP.js
#	server/public/admin/assets/default_reply-D8zCYW7U.js
#	server/public/admin/assets/department-DWsa1OjT.js
#	server/public/admin/assets/dept-tongji-eyhTfbdn.js
#	server/public/admin/assets/desktop_workstation-DjyYOet-.js
#	server/public/admin/assets/detail-BZAR9ddi.js
#	server/public/admin/assets/detail-CFyC8ImZ.js
#	server/public/admin/assets/dict-K5jXOVeu.js
#	server/public/admin/assets/doctor-67HUqvH6.js
#	server/public/admin/assets/edit-BVGUIRWC.js
#	server/public/admin/assets/edit-BYRC6YDz.css
#	server/public/admin/assets/edit-CiIgrwSx.js
#	server/public/admin/assets/edit-CtQmrXFk.js
#	server/public/admin/assets/edit-DFAdp19K.js
#	server/public/admin/assets/edit-DNccqn8z.js
#	server/public/admin/assets/edit-DjWNlPnW.js
#	server/public/admin/assets/edit-Qrv_aqRa.js
#	server/public/admin/assets/edit-vVRINxRB.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B_oC0AEU.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-C7-_pAL8.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CTFgk6QV.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CX_KUDU8.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DyP0DJmF.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DyqPlqpu.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-KBdoyuFG.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-NbrHRZf2.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-z-MjcUR0.js
#	server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-DKmZkTfn.js
#	server/public/admin/assets/environment-CypnLxrG.js
#	server/public/admin/assets/error-qleaM0eA.js
#	server/public/admin/assets/fans-BEy6y9dV.js
#	server/public/admin/assets/file-BbPuzGA_.js
#	server/public/admin/assets/file-CYwMKS77.js
#	server/public/admin/assets/filing-CD0AWXGl.js
#	server/public/admin/assets/finance-D_CR5ikx.js
#	server/public/admin/assets/first_visit-D4R0U3AW.js
#	server/public/admin/assets/follow_reply-c3sC_GVa.js
#	server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-g2gc-rGu.js
#	server/public/admin/assets/guahao-Dx7MIOXD.js
#	server/public/admin/assets/h5-DEYp6ziA.js
#	server/public/admin/assets/icon-CXrybs-g.js
#	server/public/admin/assets/im-business-message-parse-D_ibrMLq.js
#	server/public/admin/assets/index-01yWb2WC.js
#	server/public/admin/assets/index-6D3QYnU-.js
#	server/public/admin/assets/index-B1iWGyoA.js
#	server/public/admin/assets/index-B4AHD13Q.js
#	server/public/admin/assets/index-BBfgtFWE.js
#	server/public/admin/assets/index-BBw5kvK3.js
#	server/public/admin/assets/index-BDAWyLAZ.js
#	server/public/admin/assets/index-BJGIfP1w.js
#	server/public/admin/assets/index-BQUdwcn-.js
#	server/public/admin/assets/index-BSMBP3_x.js
#	server/public/admin/assets/index-BdkP3TxP.js
#	server/public/admin/assets/index-BgMeTKOG.js
#	server/public/admin/assets/index-Bmrtumah.js
#	server/public/admin/assets/index-Brsj06xV.js
#	server/public/admin/assets/index-Burmlw_C.js
#	server/public/admin/assets/index-C06c4h92.js
#	server/public/admin/assets/index-C1h5WVyC.js
#	server/public/admin/assets/index-C2Gny0kk.js
#	server/public/admin/assets/index-C5O-FG0j.js
#	server/public/admin/assets/index-C8BoF1ue.js
#	server/public/admin/assets/index-CJuWPVul.js
#	server/public/admin/assets/index-CV08lFR0.js
#	server/public/admin/assets/index-C_WKJDWz.js
#	server/public/admin/assets/index-Cew5Amf6.js
#	server/public/admin/assets/index-CkXW7n_b.js
#	server/public/admin/assets/index-CprgR4Ho.js
#	server/public/admin/assets/index-Csf0cSVI.js
#	server/public/admin/assets/index-Cux23s8_.js
#	server/public/admin/assets/index-D0fXvBxu.js
#	server/public/admin/assets/index-D8yz_vWn.js
#	server/public/admin/assets/index-DBKQxzkM.js
#	server/public/admin/assets/index-DIjSXq4q.js
#	server/public/admin/assets/index-DIqVZCk0.js
#	server/public/admin/assets/index-DNsVxejj.js
#	server/public/admin/assets/index-DPWF9bqo.js
#	server/public/admin/assets/index-DQ51fSAo.js
#	server/public/admin/assets/index-DQ9Uu3LT.js
#	server/public/admin/assets/index-DWRHbuqT.js
#	server/public/admin/assets/index-Db2Y9m7h.js
#	server/public/admin/assets/index-DcHdMI2B.js
#	server/public/admin/assets/index-DgPgE-Vl.js
#	server/public/admin/assets/index-Dr8oROcK.js
#	server/public/admin/assets/index-Ds_Mrym4.js
#	server/public/admin/assets/index-DtSyPsbW.js
#	server/public/admin/assets/index-GT7BM7PS.js
#	server/public/admin/assets/index-JZkFc8I0.js
#	server/public/admin/assets/index-hNEe3rMW.js
#	server/public/admin/assets/index-kMiV0948.js
#	server/public/admin/assets/index-qwjw9zcC.js
#	server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-BClfSqof.js
#	server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-BtlhchBa.js
#	server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-C6aeOkz-.js
#	server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-Cxgoepog.js
#	server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-Dx6SeCGU.js
#	server/public/admin/assets/index.vue_vue_type_style_index_0_lang-DFOUY-wL.js
#	server/public/admin/assets/information-D4VXaoVX.js
#	server/public/admin/assets/keyword_reply-CtUT2T_C.js
#	server/public/admin/assets/link-DAAa4-8h.js
#	server/public/admin/assets/list-B31OC0dY.js
#	server/public/admin/assets/login-D-CTVkUr.js
#	server/public/admin/assets/login_register-BiM6Wf25.js
#	server/public/admin/assets/medicine-BGJ8mZD8.js
#	server/public/admin/assets/medicine-CNGccw4f.js
#	server/public/admin/assets/menu-BhV_PotF.js
#	server/public/admin/assets/menu-CixPRDpt.js
#	server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-B0ghs-Pc.js
#	server/public/admin/assets/message-DWVo1Jk8.js
#	server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-B9BK24HQ.js
#	server/public/admin/assets/mubiao-A1xD0JzP.js
#	server/public/admin/assets/mubiao-dept-card-DDiegAnr.js
#	server/public/admin/assets/mubiao-dept-node-Cmw8YiIy.js
#	server/public/admin/assets/oa-attr-DZLm3ufW.js
#	server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-CXz4UbLJ.js
#	server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BPJDNffP.js
#	server/public/admin/assets/open_setting-YVf3y2zz.js
#	server/public/admin/assets/order-Bc7o9SOH.js
#	server/public/admin/assets/overflow-DhSFQzu9.js
#	server/public/admin/assets/paiban-BY9Nnrmr.js
#	server/public/admin/assets/patient-DxJlPLVv.js
#	server/public/admin/assets/patient-call-q2qMhhFV.js
#	server/public/admin/assets/pay-DWoC89w_.js
#	server/public/admin/assets/pc-CDHcPjgN.js
#	server/public/admin/assets/perm-DaS8_T_U.js
#	server/public/admin/assets/picker-ruBeJVAv.js
#	server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-DsjIkNAZ.js
#	server/public/admin/assets/popover_input-CrckcagQ.js
#	server/public/admin/assets/post-DGDTwH-Z.js
#	server/public/admin/assets/prescription-drawer-DN1NpnaF.js
#	server/public/admin/assets/preview-BbXyDhjZ.js
#	server/public/admin/assets/preview-pc-DIFp8DvX.js
#	server/public/admin/assets/progress-BUj9Y2lB.js
#	server/public/admin/assets/protocol-Clsp_lEu.js
#	server/public/admin/assets/qywx-CxG05a7f.js
#	server/public/admin/assets/recharge_record-CymZKQ4E.js
#	server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-Choelpx6.js
#	server/public/admin/assets/refund_record-BLbeOAEj.js
#	server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BRi9G5mf.js
#	server/public/admin/assets/role-Czcmecam.js
#	server/public/admin/assets/roster-Bh9PjuXi.js
#	server/public/admin/assets/rtc-detect-BFElJVVn.js
#	server/public/admin/assets/self_input_stats-P0WLo9tC.js
#	server/public/admin/assets/setting-CCd8WCbC.js
#	server/public/admin/assets/setup-HuwOPKIm.js
#	server/public/admin/assets/statistics-Cj3WlBni.js
#	server/public/admin/assets/stats-E_9WKdl6.js
#	server/public/admin/assets/style-DoPXLvzO.js
#	server/public/admin/assets/tabbar-DD2RRhme.js
#	server/public/admin/assets/tcm-E9u-W8Oy.js
#	server/public/admin/assets/theme-picker-NdSgC88S.js
#	server/public/admin/assets/tim-profanity-filter-plugin-BvbMOVpi.js
#	server/public/admin/assets/tim-upload-plugin-D7nWSdhF.js
#	server/public/admin/assets/tongji-yCfKN-LL.js
#	server/public/admin/assets/upload-CjtahvI1.js
#	server/public/admin/assets/useDictOptions-LZFsDBEH.js
#	server/public/admin/assets/useListTimeFilter-CUZgt-II.js
#	server/public/admin/assets/useLockFn-C2guENRT.js
#	server/public/admin/assets/useMediaSourceOptions-wCazM6uJ.js
#	server/public/admin/assets/useMenuOa-92GS9rAv.js
#	server/public/admin/assets/usePaging-DzgVFG9b.js
#	server/public/admin/assets/user-DHg9QKqg.js
#	server/public/admin/assets/weapp-C5C4Oypv.js
#	server/public/admin/assets/weapp-CgFixEn4.js
#	server/public/admin/assets/website-Dk_rtWyw.js
#	server/public/admin/assets/wx_oa-BR5bK2fX.js
#	server/public/admin/assets/yeji-BlMBwtyi.js
#	server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-AeltfJWh.js
#	server/public/admin/index.html
2026-11-12 14:21:14 +08:00
Your Name de97f00597 gengx 2026-11-12 09:47:04 +08:00
Your Name c737960d4f 更新 2026-11-12 09:07:07 +08:00
gr 875c1049c0 ;rgb:0000/0000/0000ii: 2026-11-12 09:04:58 +08:00
gr a62311a8da gengxin 2026-11-11 14:22:02 +08:00
Your Name 245618dcdc Merge branch '11-5' 2026-11-09 14:51:52 +08:00
Your Name 06afe2c453 更新 2026-11-09 14:51:31 +08:00
Your Name 0c09d6d115 更新 2026-11-09 12:00:26 +08:00
Your Name 981896d646 Merge branch '11-5' 2026-11-09 11:56:54 +08:00
Your Name 01a46ee06f 更新 2026-11-09 11:56:28 +08:00
Your Name 07575cbf04 更新 2026-11-09 11:03:25 +08:00
Your Name 839166524f Merge branch 'master' into 11-5 2026-11-09 10:03:35 +08:00
Your Name 8466acef9f 更新 2026-11-09 10:02:27 +08:00
gr 20884d8b1a 跟新 2026-11-06 13:37:12 +08:00
Your Name 0c43d54c08 更新:: 2026-11-06 13:35:33 +08:00
gr d43cb8da36 Mi
erge branch '11-5' of http://git.zhenyangtang.com.cn/ZYT/zyt

it stash pop
2026-11-06 12:02:54 +08:00
Your Name b46fb901ca 更新 2026-11-06 12:01:31 +08:00
Your Name 5926083221 更新 2026-11-06 11:48:42 +08:00
Your Name 0d36a6e840 更新 2026-11-05 17:58:18 +08:00
gr 87702eb6b8 Merge branch '11-5' of http://git.zhenyangtang.com.cn/ZYT/zyt 2026-11-05 17:28:39 +08:00
Your Name 0fe59209d9 gengx 2026-11-05 17:27:55 +08:00
gr be70b188c1 Merge branch 'master' of http://git.zhenyangtang.com.cn/ZYT/zyt 2026-11-03 17:30:21 +08:00
Your Name f277fec427 更新 2026-11-03 17:20:35 +08:00
大哥大哥的大哥哥 3d912ddcd7 chore(wx): upgrade WechatSI plugin to 0.3.9
(cherry picked from commit 87b8949f95)
2026-10-31 15:12:10 +08:00
long 0f4cbfe316 Merge AI 跟练(训练分包)与血糖页体验优化
- 新增 AI 跟练:摄像头识别深蹲、高抬腿、开合跳、侧平举,自动计数与纠正;无摄像头时领练
- 居家耗糖训练改为轮播卡片,新增 AI 跟练入口
- 真机修复:识别坐标异常导致不计数/误计数、训练结束卡死、单帧跳动多计
- 血糖页 AI 咨询默认按住说话,松手发送、上滑取消;页面禁止左右滑动
- 修复聊天页真机调试编译失败
2026-10-31 13:36:20 +08:00
long 99388aa58b chore(training): AI 跟练识别诊断面板默认关闭
诊断面板和 console 识别摘要改为编译时设置 VITE_POSE_DIAG=1 才开启(与远程日志 VITE_POSE_LOG_URL 一致),
开发版平时不再显示,需要真机排查时再打开。
2026-10-31 12:18:40 +08:00
long 1129620c21 feat(tongji): 血糖页 AI 咨询默认按住说话,松手发送、上滑取消
- 默认整条“按住 说话”,松手直接发给 AI,不用再点发送;按住时手指上滑进入取消状态(按钮和浮层变红)
- 说话时浮层实时显示识别出的文字和声波动画
- 右侧键盘图标切到文字输入(自动聚焦),有内容才出现发送按钮;麦克风图标切回语音;不支持语音的环境直接用文字
- 回答卡片移到输入栏上方,先显示“你问”方便核对语音识别结果
- 按住说话时暂时隐藏 2d 画布趋势图(层级高于普通元素会盖住浮层),松手后重绘
2026-10-31 12:04:28 +08:00
long 14b9c37aa4 fix(training): 修复 AI 跟练结束卡死,看不清时提示后退,加入开发版识别诊断
- 达到目标次数发生在识别回调里,同步关摄像头、销毁识别引擎会让 iOS 卡死:结算推迟到回调返回后,引擎延后销毁,停止后迟到的结果丢弃
- 补监听 addAnchors(与官方示例一致),首次识别到人、丢失后重现的结果不再丢掉
- 训练中连续 1.5 秒看不清时,屏幕和语音提示怎么站,而不是一声不吭不计数
- 开发版识别诊断:页面诊断面板;编译时设置 VITE_POSE_LOG_URL 可把识别数据实时发到电脑上的日志服务。发行版不生效
2026-10-31 11:56:31 +08:00
long a8d00597f4 fix(training): 修复 AI 跟练真机不计数和误计数,放宽动作要求
真机日志定位的问题:
- 画面外的关键点坐标是 NaN 或字符串,平滑后永久污染膝、踝坐标,深蹲指标恒为 0、站位却被误判通过。
  入口处把非数字坐标当作看不见,平滑时上一帧无效就用新坐标重新开始
- 识别引擎单帧跳动越过计数线也会计一次:连续 2 帧达到计数线才算开始;深蹲连续 2 帧回到站立才算完成
- 离太近时腿部点置信度只有 0.1~0.2、位置靠猜:计数的可见阈值保持 0.3,不用膝盖替补脚踝

按真机跟练的实际幅度放宽:深蹲 0.18→0.13、高抬腿 0.22→0.16、开合跳 120°→95°、侧平举 68°→58°,
左右只看清一侧也能算;开合跳 140° 满分,没迈步只提示不压分。
2026-10-31 11:56:31 +08:00
long 84be21b1bf fix(training): 修复 AI 跟练首页动作卡片在部分机型上变成单列
两张卡片宽度加固定 gap 恰好凑满 100%,rpx 换算取整后多出 1px,第二张被挤到下一行。
列间距改用 space-between 分配。
2026-10-31 11:56:31 +08:00
long 17f47b15ec fix(tongji): 血糖页禁止整页左右滑动
页面根节点裁掉横向溢出(overflow-x: clip,旧内核回退 hidden),
任何子元素超宽都不会再撑出横向滚动。
2026-10-31 11:56:31 +08:00
long 883f63300c fix(chat): 修复聊天页 const 变量重新赋值导致真机调试编译失败
userID 不含 patient 前缀时要补前缀,需要重新赋值,改为 let。
模拟器只在执行到这行时才报错;真机调试打包时 SWC 直接拒绝整个小程序。
2026-10-31 11:56:31 +08:00
long c695217afe fix: 关闭 AI 跟练震动并修复结束重复记录等问题
- 去掉倒计时、计数、评分和调整目标次数时的震动
- 手动结束训练不再重入 finish,避免同一次训练记两条历史
- 领练模式倒计时中暂停后恢复,直接重新倒计时,不再卡在站位
- 摄像头识别随时失败都切到领练模式,不再只在就绪后 1.5 秒检查一次
2026-10-31 10:34:48 +08:00
long 4932ed7651 refactor: 移除 AI 跟练中没有作用的代码
- 删除从未显示的 idle 手势帧(小程序包内 png 和视频用高清帧),训练分包减少 17KB
- 删除骨架连线 BONES、镜像函数 mirrorPose(骨架已去掉)和未使用的 Bgm 类型
- 只给单测用的 sampleMotion 移到测试目录
- 删除训练菜单里未使用的 .menu-icon-text 样式
- 补全 history 单测数据缺少的 adviceKind 字段(严格类型检查报错)
2026-10-31 10:33:25 +08:00
long 3cd3553af2 feat: 新增 training-videos 素材流水线
AI 跟练的素材生产工具,产物写入 TUICallKit-Vue3/training:
- 教练动作帧:AI 设定稿 → 切帧对齐、锁脸、插帧 → 导出小程序帧与 COS 高清帧
- 示范视频:Remotion 渲染四个动作的示范视频
- 背景音乐:程序合成的原创循环音乐(npm run bgm)
2026-10-31 10:33:25 +08:00
long 75f4b74b3d feat: 居家耗糖训练改为轮播卡片,新增 AI 跟练入口
- 轮播:当前卡片居中,两侧露出相邻卡片,自动慢速轮播,点两侧卡片先转到中间
- 卡片:每种训练一套配色,标题 + 一行介绍 + 去训练按钮,右侧大图标,AI 跟练卡片用教练插画
- 指示点替代“左右滑动”提示文字;悬浮菜单增加 AI 跟练入口
2026-10-31 10:33:25 +08:00
long c3f4d726e0 feat: 新增 AI 跟练(训练分包)
- 页面:pose-hub 选择动作,pose-coach 跟练(教练小甄示范 + 摄像头动作识别计数)
- 动作:徒手深蹲、原地高抬腿、低冲击开合、站姿侧平举
- VisionKit 人体识别,按动作幅度计数、评分、纠错;没有摄像头或识别不可用时自动进入领练模式
- 教练逐帧动画:分包内置 600px 帧,COS 高清帧全部加载完后无缝切换
- 语音报数与口令(WechatSI),舒缓背景音乐(COS,教练说话时自动压低,可关闭)
- 逻辑单测:npm run test:pose
2026-10-31 10:33:25 +08:00
gr d0babeb376 Merge branch 'master' of http://git.zhenyangtang.com.cn/ZYT/zyt 2026-10-30 13:43:29 +08:00
Your Name 8424244f7c Merge branch 'master' into master-10-146 2026-10-30 13:42:36 +08:00
Your Name e2fc30e1f7 更新 2026-10-30 13:41:35 +08:00
Your Name 28ba9b97f2 更新 2026-10-29 16:14:55 +08:00
Your Name a5c3235bf7 更新 2026-10-29 14:01:39 +08:00
gr e183e1cc62 Mergt
:exit branch 'master' of http://git.zhenyangtang.com.cn/ZYT/zyt
2026-10-27 16:53:16 +08:00
Your Name 85ffda8fd0 更新 2026-10-27 16:52:13 +08:00
Your Name 5f1e362698 更新 2026-10-27 16:46:50 +08:00