3 lines
58 KiB
JavaScript
3 lines
58 KiB
JavaScript
"use strict";const n=require("../../common/vendor.js"),Fe=require("../utils/treeLevels.js"),B=require("../utils/treeSpecies.js"),Mi=require("../composables/useDietAi.js"),Qa=require("../composables/useSpeechToText.js"),_e=require("../utils/voiceParse.js");Math||(ji+Bi+Gi+Oi)();const Oi=()=>"../components/SugarTreeGraphic.js",Bi=()=>"../components/TongjiIcon.js",ji=()=>"../components/CelebrateBurst.js",Gi=()=>"../components/VoiceSpeakMascot.js",Vi=3.9,Ui=320,Wi=250,zi=550,qi=1800,Za=2,Yi=3,Ki=600,en={__name:"more",setup(Ji){const{proxy:b}=n.getCurrentInstance();function ae(e,a=""){if(e==null||e==="")return a;if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e)){const t=e.map(i=>i==null?"":typeof i=="string"?i:typeof i=="number"||typeof i=="boolean"?String(i):typeof i=="object"?i.msg||i.message||i.error||i.title||i.label||"":String(i)).filter(Boolean);return t.length?t.join(";"):a}return typeof e=="object"?e.msg||e.message||e.error||e.title||e.label||a:String(e)}function u(e,a={}){const t=ae(e,"");t&&n.index.showToast({title:t,icon:a.icon||"none",duration:typeof a.duration=="number"?a.duration:2e3})}const c=n.ref(0),ne=n.ref(0),P=n.ref(""),Bt=n.ref({}),jt=n.ref({}),Gt=n.ref({}),E=n.ref(0),z=n.ref(0),H=n.ref(!1);let Vt=!1;const Ne=n.ref(!1),Ut=n.ref(!1),q=n.ref([]),ye=n.ref("7"),Wt=[{value:"7",label:"最近 7 天"},{value:"30",label:"最近 30 天"}],Ce=n.ref([]),He=n.ref([]),Ie=n.ref([]),Me=n.ref([]),tn=n.ref(null);n.computed(()=>E.value>0?`${E.value} 岁`:""),n.computed(()=>({1:"男",2:"女"})[Number(z.value)]||""),n.computed(()=>{const e=Wt.find(a=>a.value===ye.value);return e?e.label:""});function Y(e){const a=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0");return`${a}-${t}-${i}`}function st(e){if(!e)return new Date;const[a,t,i]=e.split("-").map(Number);return new Date(a,(t||1)-1,i||1)}const zt=n.computed(()=>{const e=ye.value==="30"?30:7,a=new Date;a.setHours(0,0,0,0);const t=new Date(a);return t.setDate(t.getDate()-(e-1)),{start:Y(t),end:Y(a)}}),Oe=n.computed(()=>{const{start:e,end:a}=zt.value;if(!e||!a)return[];const t=[],i=st(a),o=st(e).getTime();for(;i.getTime()>=o;)t.push(Y(i)),i.setDate(i.getDate()-1);return t}),ie=n.computed(()=>[...Oe.value].reverse());function v(e){if(e==null||e==="")return null;const a=Number(e);return Number.isFinite(a)&&a!==0?a:null}function qt(e){const a=Number(e);return!Number.isFinite(a)||a<=0?{fasting:7,postprandial:10}:a<50?{fasting:7,postprandial:9}:{fasting:8,postprandial:10}}function Yt(e){const a=v(e);return a!==null&&a<Vi}function Kt(e){const a=v(e),t=qt(E.value);return a!==null&&t!==null&&a>=t.fasting}function ct(e){const a=v(e),t=qt(E.value);return a!==null&&t!==null&&a>=t.postprandial}function an(e){return Yt(e)&&!Kt(e)}function Xt(e){return Yt(e)&&!ct(e)}function nn(e){if(!e)return!1;const a=v(e.systolic_pressure),t=v(e.diastolic_pressure);return a!==null&&a>140||t!==null&&t>90}function on(e){const a=e==null?void 0:e.systolic_pressure,t=e==null?void 0:e.diastolic_pressure;return(a==null||a===""||a===0)&&(t==null||t===""||t===0)?"—":`${a||"—"} / ${t||"—"}`}function Be(e){const a=v(e);return a===null?"——":String(a)}const rn={1:"低强度",2:"中强度",3:"高强度"},w=n.computed(()=>{const e={};for(const a of Ce.value){const t=String(a.record_date||"");if(!t)continue;e[t]||(e[t]={record_date:t,record_time:a.record_time||"",fasting_blood_sugar:"",postprandial_blood_sugar:"",other_blood_sugar:"",systolic_pressure:"",diastolic_pressure:"",western_medicine:"",insulin:"",remark:""});const i=e[t],o=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin","remark"];for(const r of o)(i[r]===""||i[r]===null||i[r]===void 0)&&a[r]!==""&&a[r]!==null&&a[r]!==void 0&&(i[r]=a[r])}for(const a in e){const t=e[a];t.isHighFasting=Kt(t.fasting_blood_sugar),t.isHighPostprandial=ct(t.postprandial_blood_sugar),t.isHighOther=ct(t.other_blood_sugar),t.isLowFasting=an(t.fasting_blood_sugar),t.isLowPostprandial=Xt(t.postprandial_blood_sugar),t.isLowOther=Xt(t.other_blood_sugar),t.isHighBp=nn(t),t.bpText=on(t),t.hasBpOrMed=t.bpText!=="—"||!!(t.western_medicine||t.insulin||t.remark)}return e}),dt=n.computed(()=>{const e={};for(const a of He.value){const t=String(a.record_date||"");!t||e[t]||(e[t]=a)}return e}),ft=n.computed(()=>{const e={};for(const a of Ie.value){const t=String(a.record_date||"");if(!t||e[t])continue;const i={...a};i.intensityText=rn[Number(a.intensity)]||"",e[t]=i}return e}),ln=n.computed(()=>{const e={};for(const a of Me.value){const t=String(a.note_date||"");!t||e[t]||(e[t]=a)}return e}),un=["周日","周一","周二","周三","周四","周五","周六"];function Jt(e){return un[st(e).getDay()]||""}const D=n.computed(()=>Y(new Date));n.computed(()=>{const e=[];for(const a of Oe.value){const t=w.value[a],i=t&&t.hasBpOrMed?t:null,o=dt.value[a],r=ft.value[a],s=ln.value[a];if(!(i||o||r||s&&s.content))continue;const[y,h,O]=a.split("-");e.push({date:a,dateLabel:`${h}-${O}`,weekday:Jt(a),isToday:a===D.value,blood:i,diet:o,exercise:r,tracking:s})}return e});const Se=n.computed(()=>{const e=[];for(const a of Oe.value){const t=w.value[a];if(!t||!(v(t.fasting_blood_sugar)!==null||v(t.postprandial_blood_sugar)!==null||v(t.other_blood_sugar)!==null))continue;const[o,r,s]=a.split("-");e.push({date:a,dateLabel:`${r}-${s}`,weekday:Jt(a),isToday:a===D.value,blood:t})}return e});n.computed(()=>ie.value.some(e=>{const a=w.value[e];return a&&(v(a.fasting_blood_sugar)!==null||v(a.postprandial_blood_sugar)!==null)}));const sn=n.computed(()=>ie.value.filter(e=>{const a=w.value[e];return a&&(v(a.fasting_blood_sugar)!==null||v(a.postprandial_blood_sugar)!==null)}).length),cn=n.computed(()=>ie.value.filter(e=>{const a=w.value[e];return a&&(a.isHighFasting||a.isHighPostprandial)}).length);n.computed(()=>sn.value-cn.value);function vt(e,a,t=1){if(e==null||a==null)return null;const i=Number(e)-Number(a);if(!Number.isFinite(i))return null;const o=Math.abs(i),r=o<.01?"flat":i>0?"up":"down",p=r==="flat"?"持平":`${r==="up"?"+":r==="down"?"-":""}${o.toFixed(t)}`;return{dir:r,delta:o,deltaText:p,prev:a}}function gt(e,a){const t=ie.value,i=t.indexOf(a);if(i<=0)return null;for(let o=i-1;o>=0;o--){const r=w.value[t[o]];if(!r)continue;const s=v(r[e]);if(s!==null)return{date:t[o],value:s}}return null}const pt=n.computed(()=>{const e=[...ie.value].reverse(),a={value:"—",date:"暂无记录",isHigh:!1,trend:null},t={fasting:{...a},postprandial:{...a},other:{...a}};for(const i of e){const o=w.value[i];if(o){if(t.fasting.value==="—"&&v(o.fasting_blood_sugar)!==null){const r=v(o.fasting_blood_sugar),s=gt("fasting_blood_sugar",i);t.fasting={value:String(o.fasting_blood_sugar),date:i.slice(5),isHigh:o.isHighFasting,trend:s?vt(r,s.value):null}}if(t.postprandial.value==="—"&&v(o.postprandial_blood_sugar)!==null){const r=v(o.postprandial_blood_sugar),s=gt("postprandial_blood_sugar",i);t.postprandial={value:String(o.postprandial_blood_sugar),date:i.slice(5),isHigh:o.isHighPostprandial,trend:s?vt(r,s.value):null}}if(t.other.value==="—"&&v(o.other_blood_sugar)!==null){const r=v(o.other_blood_sugar),s=gt("other_blood_sugar",i);t.other={value:String(o.other_blood_sugar),date:i.slice(5),isHigh:o.isHighOther,trend:s?vt(r,s.value):null}}if(t.fasting.value!=="—"&&t.postprandial.value!=="—"&&t.other.value!=="—")break}}return t});let K=null;function j(){return!!String(n.index.getStorageSync("token")||"").trim()}function Qt(){n.index.removeStorageSync("token"),K=null}function dn(){return new Promise((e,a)=>{n.index.login({provider:"weixin",success:t=>{t&&t.code?e(t.code):a(new Error("微信登录未返回 code"))},fail:a})})}async function fn(e){const a=await b.apiUrl({url:"/api/login/mnpLogin",method:"POST",data:{code:e}},!1);if(a&&a.code===1&&a.data&&a.data.token)return n.index.setStorageSync("token",a.data.token),n.index.setStorageSync("userData",a.data),a.data;throw Qt(),new Error(ae(a==null?void 0:a.msg,"登录失败"))}async function Zt(){const e=await dn();return await fn(e),j()}async function vn(){if(!j())return Zt();try{const e=await b.apiUrl({url:"/api/user/info",method:"POST"},!1);if(e&&e.code===1&&e.data)return n.index.setStorageSync("userData",e.data),!0}catch{}Qt();try{return await Zt()}catch{return!1}}async function ea(){return K||(K=vn().then(e=>(e||(K=null),!!e)).catch(()=>(K=null,!1)),K)}async function ta(){if(!j())return[];Ut.value=!0;try{const e=await b.apiUrl({url:"/api/tcm/getCardList",method:"GET",data:{}},!1);return e&&e.code===1&&Array.isArray(e.data)?(q.value=e.data,e.data):(q.value=[],[])}catch{return q.value=[],[]}finally{Ut.value=!1}}async function mt(e){!e||!j()||(c.value=Number(e.id)||0,ne.value=Number(e.patient_id)||0,P.value=e.patient_name||"",E.value=Number(e.age)||0,z.value=Number(e.gender)||0,It.value=za(Number(e.id)||0),Ae.value={like_count:0,summary_line:"分享战报给家人,邀请他们为您点赞鼓劲",recent:[]},Da.value="",bi(),await J())}function aa(){try{const e=n.index.getStorageSync("userData")||{};return String(e.mobile||e.phone||"").trim()}catch{return""}}async function gn(){if(c.value)return!0;const e=await b.apiUrl({url:"/api/tcm/dailyEnsurePhoneContext",method:"POST",data:{}},!1);return e&&e.code===1&&e.data&&e.data.diagnosis_id?(await mt({id:e.data.diagnosis_id,patient_id:e.data.patient_id,patient_name:e.data.patient_name||"",age:e.data.age||0,gender:e.data.gender||0}),(e.data.created||e.data.linked_existing)&&await ta(),!0):e&&e.data&&e.data.need_mobile?"need_mobile":(u(ae(e==null?void 0:e.msg,"无法加载记录")),!1)}async function pn(e){!e||Number(e.id)===Number(c.value)||(Ce.value=[],He.value=[],Ie.value=[],Me.value=[],tn.value=null,await mt(e),L())}async function L(){if(!j()||!c.value)return;Ne.value=!0;const{start:e,end:a}=zt.value;try{const[t,i]=await Promise.all([b.apiUrl({url:"/api/tcm/dailyTrackingWindow",method:"GET",data:{diagnosis_id:c.value,patient_id:ne.value||0,start_date:e,end_date:a}},!1),b.apiUrl({url:"/api/tcm/dailyTrackingNotes",method:"GET",data:{diagnosis_id:c.value,patient_id:ne.value||0}},!1)]);if(t&&t.code===1){const o=t.data||{};Ce.value=Array.isArray(o.blood_records)?o.blood_records:[],He.value=Array.isArray(o.diet_records)?o.diet_records:[],Ie.value=Array.isArray(o.exercise_records)?o.exercise_records:[],o.diagnosis&&(P.value||(P.value=o.diagnosis.patient_name||""),E.value||(E.value=Number(o.diagnosis.age)||0),z.value||(z.value=Number(o.diagnosis.gender)||0),ne.value||(ne.value=Number(o.diagnosis.patient_id)||0))}else Ce.value=[],He.value=[],Ie.value=[],t!=null&&t.msg&&u(t.msg);if(i&&i.code===1){const o=Array.isArray(i.data)?i.data:[];Me.value=o.filter(r=>Oe.value.includes(String((r==null?void 0:r.note_date)||"")))}else Me.value=[];await J(),await Ya()}catch{n.index.showToast({title:"加载失败,请稍后再试",icon:"none"})}finally{if(Ne.value=!1,Kn.value&&!ze.value){const t=++xa;setTimeout(()=>{t===xa&&!ze.value&&Qn()},350)}}}function mn(e){ye.value!==e&&(ye.value=e,L())}function bn(){L()}function hn(e=new Date().getHours()){const a=Number(e)||0;return a<5?{text:"夜深了",icon:"moon"}:a<11?{text:"早上好",icon:"sun"}:a<13?{text:"中午好",icon:"sun"}:a<18?{text:"下午好",icon:"sun"}:a<22?{text:"晚上好",icon:"sunset"}:{text:"夜深了",icon:"moon"}}n.computed(()=>hn());function bt(e){const a=w.value[e];return a?v(a.fasting_blood_sugar)!==null||v(a.postprandial_blood_sugar)!==null||v(a.other_blood_sugar)!==null||v(a.systolic_pressure)!==null||v(a.diastolic_pressure)!==null:!1}function _n(e){const a=w.value[e],t=dt.value[e],i=ft.value[e];if(!a&&!t&&!i)return 0;let o=0;return a&&(o+=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure"].filter(s=>v(a[s])!==null).length),t&&(t.breakfast_foods||t.lunch_foods||t.dinner_foods)&&(o+=1),i&&(i.exercise_type||i.duration)&&(o+=1),o===0?0:o===1?1:o<=3?2:3}const na=n.computed(()=>bt(D.value)),ia=n.computed(()=>{const e=new Date;let a=0,t=!1;for(let i=0;i<90;i++){const o=new Date(e);o.setDate(e.getDate()-i);const r=Y(o);if(bt(r))a++;else{if(i===0){t=!0;continue}break}}return{days:a,startedFromYesterday:t}}),oa=n.computed(()=>{const e=[],a=new Date,t=["日","一","二","三","四","五","六"];for(let i=6;i>=0;i--){const o=new Date(a);o.setDate(a.getDate()-i);const r=Y(o);e.push({date:r,label:t[o.getDay()],isToday:i===0,hasRecord:bt(r)})}return e}),ra=n.computed(()=>oa.value.filter(e=>e.hasRecord).length);function yn(e){const a=w.value[e];return!!(a&&v(a.fasting_blood_sugar)!==null)}function Sn(e){const a=w.value[e];return!!(a&&v(a.postprandial_blood_sugar)!==null)}function Tn(e){return yn(e)&&Sn(e)}function xn(e){const a=w.value[e];return a?a.isHighFasting||a.isHighPostprandial:!1}const kn=n.computed(()=>oa.value.filter(e=>Tn(e.date)).length),oe=n.computed(()=>{const e=ie.value;if(!e||!e.length)return[];const a=[...e].sort(),t=new Date(a[0]),i=new Date(a[a.length-1]),o=(t.getDay()+6)%7,r=(i.getDay()+6)%7,s=new Date(t);s.setDate(t.getDate()-o);const p=new Date(i);p.setDate(i.getDate()+(6-r));const y=Math.round((p-s)/864e5)+1,h=[];let O=new Date(s);for(let Ka=0;Ka<Math.ceil(y/7);Ka++){const Xa=[];for(let Ja=0;Ja<7;Ja++){const Ee=Y(O),Ot=a.includes(Ee);Xa.push({date:Ee,day:O.getDate(),inRange:Ot,isToday:Ee===D.value,level:Ot?_n(Ee):-1,isHigh:Ot?xn(Ee):!1}),O.setDate(O.getDate()+1)}h.push(Xa)}return h}),wn=n.computed(()=>{const e=oe.value;return e.length?e.flat():[]}),Dn=n.computed(()=>{let e=0;for(const a of oe.value)for(const t of a)t.inRange&&t.level>0&&e++;return e}),$n=n.computed(()=>{let e=0;for(const a of oe.value)for(const t of a)t.inRange&&e++;return e}),Pn=n.computed(()=>{const e=oe.value;if(!e.length)return"";const a=new Map;for(const s of e)for(const p of s){if(!p.inRange)continue;const[y,h]=p.date.split("-"),O=`${y}-${h}`;a.set(O,(a.get(O)||0)+1)}if(!a.size){const s=e[0][0].date.split("-");return`${Number(s[0])}年${Number(s[1])}月`}let t="",i=-1;for(const[s,p]of a)p>i&&(t=s,i=p);const[o,r]=t.split("-");return`${Number(o)}年${Number(r)}月`});function Rn(e){if(!Se.value.some(a=>a.date===e)){n.index.showToast({title:"该日无记录",icon:"none"});return}n.index.createSelectorQuery().in(b).select(`#day-${e.replace(/-/g,"")}`).boundingClientRect().selectViewport().scrollOffset().exec(a=>{if(!a||!a[0])return;const t=a[0].top+(a[1]?a[1].scrollTop:0)-80;n.index.pageScrollTo({scrollTop:t,duration:280})})}const je=n.computed(()=>{const e=new Date,a=String(e.getMonth()+1).padStart(2,"0"),t=String(e.getDate()).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];return`${e.getFullYear()}-${a}-${t} ${i[e.getDay()]}`}),la=()=>({visible:!1,loading:!1,submitting:!1,id:0,fasting_blood_sugar:"",postprandial_blood_sugar:"",other_blood_sugar:"",remark:""}),d=n.ref(la()),ua=()=>({visible:!1,loading:!1,submitting:!1,id:0,systolic_pressure:"",diastolic_pressure:"",western_medicine:"",insulin:"",remark:""}),f=n.ref(ua());function Ge(){A(),$e()}function Ve(e,a){var t;d.value[e]=((t=a==null?void 0:a.detail)==null?void 0:t.value)??""}async function ht(){if(!c.value){u("请先选择就诊卡");return}if(!n.index.getStorageSync("token")){u("请先登录后再录入");return}Ge(),d.value={...la(),visible:!0,loading:!0};try{const a=await b.apiUrl({url:"/api/tcm/dailyTodayBloodRecord",method:"GET",data:{diagnosis_id:c.value}},!1);if(a&&a.code===1&&a.data&&a.data.record){const t=a.data.record;d.value.id=Number(t.id)||0,d.value.fasting_blood_sugar=re(t.fasting_blood_sugar),d.value.postprandial_blood_sugar=re(t.postprandial_blood_sugar),d.value.other_blood_sugar=re(t.other_blood_sugar),d.value.remark=String(t.remark||""),Ra.value&&u("今日血糖已录入,如需修改可在下方调整",{duration:2600})}}catch{}finally{d.value.loading=!1}}function sa(){d.value.submitting||(ue(),A(),d.value.visible=!1)}async function ca(){if(d.value.submitting||d.value.loading)return;l.active&&A();const e=d.value;if(!([e.fasting_blood_sugar,e.postprandial_blood_sugar,e.other_blood_sugar].some(t=>t!==""&&t!==null&&Number(t)>0)||!!(e.remark&&e.remark.trim()))){u("请至少填写一项数据");return}d.value.submitting=!0;try{const t=await b.apiUrl({url:"/api/tcm/dailySaveBloodRecord",method:"POST",data:{diagnosis_id:c.value,fasting_blood_sugar:e.fasting_blood_sugar,postprandial_blood_sugar:e.postprandial_blood_sugar,other_blood_sugar:e.other_blood_sugar,remark:e.remark}},!1);t&&t.code===1?(u(t.msg||"今日血糖已录入完成",{icon:"success"}),d.value.visible=!1,await L(),await J(),nt("血糖")):u(t&&t.msg||"保存失败")}catch{u("网络异常,请稍后再试")}finally{d.value.submitting=!1}}function An(){!d.value.id||d.value.submitting||(l.active&&A(),n.index.showModal({title:"删除确认",content:"确定删除今天已录入的血糖数据吗?删除后无法恢复。",confirmColor:"#dc2626",success:async e=>{if(e.confirm){d.value.submitting=!0;try{const a=await b.apiUrl({url:"/api/tcm/dailyDeleteBloodRecord",method:"POST",data:{diagnosis_id:c.value,id:d.value.id}},!1);a&&a.code===1?(n.index.showToast({title:"已删除",icon:"success"}),d.value.visible=!1,await L(),await J()):u(a&&a.msg||"删除失败")}catch{n.index.showToast({title:"网络异常,请稍后再试",icon:"none"})}finally{d.value.submitting=!1}}}}))}function Ue(e,a){var i;const t=((i=a==null?void 0:a.detail)==null?void 0:i.value)??"";f.value[e]=t}async function Ln(){if(!c.value){u("请先选择就诊卡");return}if(!n.index.getStorageSync("token")){u("请先登录后再录入");return}Ge(),f.value={...ua(),visible:!0,loading:!0};try{const a=await b.apiUrl({url:"/api/tcm/dailyTodayBloodRecord",method:"GET",data:{diagnosis_id:c.value}},!1);if(a&&a.code===1&&a.data&&a.data.record){const t=a.data.record;f.value.id=Number(t.id)||0,f.value.systolic_pressure=re(t.systolic_pressure),f.value.diastolic_pressure=re(t.diastolic_pressure),f.value.western_medicine=String(t.western_medicine||""),f.value.insulin=String(t.insulin||""),f.value.remark=String(t.remark||""),Aa.value&&u("今日血压已录入,如需修改可在下方调整",{duration:2600})}}catch{}finally{f.value.loading=!1}}function re(e){return e==null||e===""||e===0||e==="0"||typeof e=="object"?"":String(e)}function da(){f.value.submitting||(ue(),f.value.visible=!1,n.nextTick$1(()=>{}))}const fa=()=>({visible:!1,loading:!1,submitting:!1,id:0,breakfast_foods:"",lunch_foods:"",dinner_foods:"",note:""}),g=n.ref(fa()),x=n.ref(null);function va(){const e=x.value;if(e&&(e.breakfast&&(g.value.breakfast_foods=e.breakfast),e.lunch&&(g.value.lunch_foods=e.lunch),e.dinner&&(g.value.dinner_foods=e.dinner),e.tips)){const a=String(g.value.note||"").trim();g.value.note=a?`${a};${e.tips}`:e.tips}}function We(e,a){var t;g.value[e]=((t=a==null?void 0:a.detail)==null?void 0:t.value)??""}async function ga(e={}){var i,o;const a=!!e.autoFill;if(x.value||(x.value=Mi.consumeDietAiPrefill()),!c.value){u("请先选择就诊卡");return}if(!n.index.getStorageSync("token")){u("请先登录后再录入");return}Ge(),g.value={...fa(),visible:!0,loading:!0};try{const r=await b.apiUrl({url:"/api/tcm/dailyTodayDietRecord",method:"GET",data:{diagnosis_id:c.value}},!1);if((r==null?void 0:r.code)===1&&((i=r.data)!=null&&i.record)){const s=r.data.record;g.value.id=Number(s.id)||0,g.value.breakfast_foods=String(s.breakfast_foods||""),g.value.lunch_foods=String(s.lunch_foods||""),g.value.dinner_foods=String(s.dinner_foods||""),g.value.note=String(s.note||""),La.value&&u("今日饮食已录入,如需修改可在下方调整",{duration:2600})}}catch{}finally{g.value.loading=!1,a&&((o=x.value)!=null&&o.breakfast)&&va()}}function pa(){g.value.submitting||(ue(),g.value.visible=!1,x.value=null,n.nextTick$1(()=>{}))}async function En(){if(g.value.submitting||g.value.loading)return;const e=g.value;if(!e.breakfast_foods.trim()&&!e.lunch_foods.trim()&&!e.dinner_foods.trim()){u("请至少填写一餐饮食");return}g.value.submitting=!0;try{const a=await b.apiUrl({url:"/api/tcm/dailySaveDietRecord",method:"POST",data:{diagnosis_id:c.value,breakfast_foods:e.breakfast_foods,lunch_foods:e.lunch_foods,dinner_foods:e.dinner_foods,note:e.note}},!1);(a==null?void 0:a.code)===1?(u(a.msg||"今日饮食已录入完成",{icon:"success"}),g.value.visible=!1,await L(),await J(),nt("饮食")):u(a&&a.msg||"保存失败")}catch{u("网络异常,请稍后再试")}finally{g.value.submitting=!1}}const Fn=[{value:1,label:"低强度"},{value:2,label:"中强度"},{value:3,label:"高强度"}],ma=()=>({visible:!1,loading:!1,submitting:!1,id:0,exercise_type:"",duration:"",intensity:2,note:""}),m=n.ref(ma()),ze=n.computed(()=>d.value.visible||f.value.visible||g.value.visible||m.value.visible),qe=n.ref(""),{sttListening:F,sttHolding:G,sttSupported:_t,beginHoldSpeech:Nn,endHoldSpeech:Te}=Qa.useSpeechToText({onResult(e){l.active||In(e)},onSettle(e){return l.active?(Vn(e),!0):!1},onError(e){return Qa.isBenignSttError(e)?!0:l.active?(jn(),!0):!1},onPartial(e){l.active&&Bn(e)},showToast:e=>u(e)});let xe=null,ke="";const R=n.ref(!1);let le="";function Ye(){}function Cn(e){return qe.value===e&&(G.value||F.value)}function Hn(e){return R.value&&le===e}function S(e){return Cn(e)||Hn(e)}function yt(){xe&&(clearTimeout(xe),xe=null)}function ue(){R.value=!1,le="",yt(),ke="",Ke()}function Ke(){G.value||F.value?Te():Te(!0)}function Xe(e){if(!_t.value){u("当前环境不支持语音输入");return}l.active&&A(),R.value=!0,le=e,yt(),ke=e,xe=setTimeout(()=>{xe=null,!(!R.value||le!==e||ke!==e)&&(qe.value=e,Nn())},Ui)}function N(){const e=R.value,a=!!ke,t=G.value||F.value;R.value=!1,le="",yt(),ke="",(t||e)&&Ke(),a&&!t&&u("请长按说话",{icon:"none",duration:1500})}function C(){if(R.value){l.active&&l.phase==="listening"?On():N();return}(G.value||F.value)&&qe.value&&!l.active&&N()}function In(e){const a=String(e||"").trim();if(!a)return;const t=qe.value;let i={},o=null;if(t==="glucose"?(i=_e.parseGlucose(a),o=d):t==="bp"?(i=_e.parseBloodPressure(a),o=f):t==="diet"?(i=_e.parseDiet(a),o=g):t==="exercise"&&(i=_e.parseExercise(a),o=m),!o)return;const r=Object.keys(i);if(!r.length){t==="diet"?(St(o,"note",a),u("已记入饮食备注,请确认")):t==="glucose"?(St(o,"remark",a),u("未识别到血糖数值,已记入备注")):u(t==="bp"?"未识别到血压数值,请重试或手动填写":"没听清,请再说一次");return}r.forEach(p=>{p==="note"||p==="remark"||p==="western_medicine"||p==="insulin"?St(o,p,i[p]):o.value[p]=i[p]});const s=_e.summarizeParsed(i);u(s?`已识别:${s}`:"已填写",{icon:"none",duration:2200})}function St(e,a,t){const i=String(t||"").trim();if(!i)return;const o=String(e.value[a]||"").trim();e.value[a]=o?`${o};${i}`:i}const Mn=[{field:"fasting_blood_sugar",label:"空腹血糖",question:"请问空腹血糖是多少?"},{field:"postprandial_blood_sugar",label:"餐后血糖",question:"餐后血糖是多少?"},{field:"other_blood_sugar",label:"其他时段血糖",question:"其他时段血糖是多少?"}],l=n.reactive({active:!1,phase:"idle",stage:"collect",stepIndex:0,retries:0,errorRetries:0,barged:!1,pendingValue:"",botText:"",heardText:"",steps:Mn,collected:[]});let se=null,Je=null,T=0;function ba(){se&&(clearTimeout(se),se=null)}function ha(){Je&&(clearTimeout(Je),Je=null)}function V(){ba(),ha()}function Tt(){return l.steps[l.stepIndex]||null}function _a(e=""){const a=Tt();if(!a){kt();return}const t=T;l.phase="asking",l.errorRetries=0,l.barged=!1,l.pendingValue="",l.heardText="",l.botText=`${e}${a.question}`,V(),X(l.botText,{force:!0,onDone:()=>{t!==T||!l.active||Qe()}})}function Qe(){if(!l.active)return;const e=T;l.pendingValue="",l.heardText="",V(),l.phase="asking",se=setTimeout(()=>{e!==T||!l.active||(l.phase="listening")},Wi)}function On(){if(R.value=!1,le="",!l.active||l.phase!=="listening"){(G.value||F.value)&&Ke();return}if(V(),G.value||F.value){Gn();return}Ke()}function Bn(e){if(!l.active||l.stage!=="collect"||l.phase!=="listening")return;const a=ya(e);if(a===null)return;const t=T;l.pendingValue=a,l.heardText=e,l.barged||(l.barged=!0,ba(),se=setTimeout(()=>{t!==T||!l.active||xt()},qi)),ha(),Je=setTimeout(()=>{t!==T||!l.active||xt()},zi)}function xt(){if(!l.active)return;const e=Tt(),a=l.pendingValue;l.pendingValue="",V(),Te(),!(!e||!a)&&(d.value[e.field]=a,l.collected.push({label:e.label,value:a}),l.retries=0,we(`好的,${e.label}已记录。`))}function jn(){if(l.active)if(V(),l.errorRetries<Yi){l.errorRetries+=1;const e=T;l.phase="asking",se=setTimeout(()=>{e!==T||!l.active||Qe()},Ki)}else l.errorRetries=0,we("录音没成功,这项先空着。")}function Gn(){if(!(!l.active||l.phase!=="listening")){if(l.stage==="collect"&&l.pendingValue){xt();return}V(),Te()}}function Vn(e){if(!l.active||l.phase!=="listening")return;V();const a=l.heardText;let t=String(e||"").trim();if(!t&&l.barged&&a&&(t=a),l.heardText=t,l.stage==="confirm"){Un(t);return}const i=Tt();if(!i){kt();return}const o=ya(t)??(l.pendingValue||null);if(l.pendingValue="",o!==null){d.value[i.field]=o,l.collected.push({label:i.label,value:o}),l.retries=0,we(`好的,${i.label}已记录。`);return}if(t&&/退出|取消|关闭/.test(t)){De("已为您关闭语音问答,可以手动填写。",()=>A());return}if(t&&/跳过|没有|不测|没测|没量|不用|下一/.test(t)){we(`好的,${i.label}先空着。`);return}l.retries<Za?(l.retries+=1,_a("没听清,")):(l.retries=0,we(`暂时没听清${i.label},先空着。`))}function ya(e){if(!e)return null;const t=_e.normalizeNumbers(e).match(/\d+(?:\.\d+)?/);if(!t)return null;const i=Number(t[0]);return!Number.isFinite(i)||i<=0?null:t[0]}function we(e=""){l.stepIndex+=1,l.retries=0,l.errorRetries=0,l.stepIndex>=l.steps.length?kt(e):_a(e)}function kt(e=""){if(!l.collected.length){De(`${e}还没有录入任何血糖数据,您可以手动填写或重新开始语音问答。`,()=>A());return}const a=l.collected.map(i=>`${i.label}${i.value}`).join(",");l.stage="confirm",l.phase="asking",l.retries=0,l.heardText="",l.botText=`${e}已为您填写:${a}。要现在提交吗?说"提交"确认,或说"取消"。`;const t=T;X(l.botText,{force:!0,onDone:()=>{t!==T||!l.active||Qe()}})}function Un(e){if(e&&/提交|确认|可以|好的|好了|是的|对|要|提交吧|保存/.test(e)){De("好的,正在为您提交。",()=>{A(),ca()});return}if(e&&/取消|不提交|不要|先不|算了|退出|关闭/.test(e)){De("已为您填好,请核对后手动提交。",()=>A());return}if(l.retries<Za){l.retries+=1;const a=T;l.stage="confirm",l.phase="asking",l.botText='没听清,要现在提交吗?说"提交"或"取消"。',X(l.botText,{force:!0,onDone:()=>{a!==T||!l.active||Qe()}})}else De("已为您填好,请核对后手动提交。",()=>A())}function De(e,a){l.botText=e;const t=T;X(e,{force:!0,onDone:()=>{t===T&&typeof a=="function"&&a()}})}function A(){V(),T+=1,Te(),$e(),l.active=!1,l.phase="idle",l.stage="collect",l.barged=!1,l.pendingValue="",l.heardText=""}n.computed(()=>l.phase==="listening"?l.stage==="confirm"?"按住作答区:说提交或取消,松手结束":"按住下方作答区说话,松手结束":l.phase==="asking"?"正在提问…":"");function Sa(e,a){var t;m.value[e]=((t=a==null?void 0:a.detail)==null?void 0:t.value)??""}async function Wn(){var a;if(!c.value){u("请先选择就诊卡");return}if(!n.index.getStorageSync("token")){u("请先登录后再录入");return}Ge(),m.value={...ma(),visible:!0,loading:!0};try{const t=await b.apiUrl({url:"/api/tcm/dailyTodayExerciseRecord",method:"GET",data:{diagnosis_id:c.value}},!1);if((t==null?void 0:t.code)===1&&((a=t.data)!=null&&a.record)){const i=t.data.record;m.value.id=Number(i.id)||0,m.value.exercise_type=String(i.exercise_type||""),m.value.duration=re(i.duration),m.value.intensity=Number(i.intensity)||2,m.value.note=String(i.note||""),Ea.value&&u("今日运动已录入,如需修改可在下方调整",{duration:2600})}}catch{}finally{m.value.loading=!1}}function Ta(){m.value.submitting||(ue(),m.value.visible=!1,n.nextTick$1(()=>{}))}async function zn(){if(m.value.submitting||m.value.loading)return;const e=m.value;if(!e.exercise_type.trim()&&!e.duration){u("请填写运动类型或时长");return}m.value.submitting=!0;try{const a=await b.apiUrl({url:"/api/tcm/dailySaveExerciseRecord",method:"POST",data:{diagnosis_id:c.value,exercise_type:e.exercise_type,duration:e.duration,intensity:e.intensity,note:e.note}},!1);(a==null?void 0:a.code)===1?(u(a.msg||"今日运动已录入完成",{icon:"success"}),m.value.visible=!1,await L(),await J(),nt("运动")):u(a&&a.msg||"保存失败")}catch{u("网络异常,请稍后再试")}finally{m.value.submitting=!1}}async function qn(){if(f.value.submitting||f.value.loading)return;const e=f.value;if(!([e.systolic_pressure,e.diastolic_pressure].some(t=>t!==""&&t!==null&&Number(t)>0)||!!(String(e.western_medicine||"").trim()||String(e.insulin||"").trim()||String(e.remark||"").trim()))){n.index.showToast({title:"请至少填写一项数据",icon:"none"});return}f.value.submitting=!0;try{const t=await b.apiUrl({url:"/api/tcm/dailySaveBloodRecord",method:"POST",data:{diagnosis_id:c.value,systolic_pressure:e.systolic_pressure,diastolic_pressure:e.diastolic_pressure,western_medicine:e.western_medicine,insulin:e.insulin,remark:e.remark}},!1);t&&t.code===1?(u(t.msg||"今日血压已录入完成",{icon:"success"}),f.value.visible=!1,await L(),await J(),nt("血压")):u(t&&t.msg||"保存失败")}catch{n.index.showToast({title:"网络异常,请稍后再试",icon:"none"})}finally{f.value.submitting=!1}}function Yn(){!f.value.id||f.value.submitting||n.index.showModal({title:"删除确认",content:"确定删除今天已录入的数据吗?删除后无法恢复。",confirmColor:"#dc2626",success:async e=>{if(e.confirm){f.value.submitting=!0;try{const a=await b.apiUrl({url:"/api/tcm/dailyDeleteBloodRecord",method:"POST",data:{diagnosis_id:c.value,id:f.value.id}},!1);a&&a.code===1?(n.index.showToast({title:"已删除",icon:"success"}),f.value.visible=!1,L()):u(a&&a.msg||"删除失败")}catch{n.index.showToast({title:"网络异常,请稍后再试",icon:"none"})}finally{f.value.submitting=!1}}}})}const wt=n.ref(!0),Kn=n.ref(!1),U=n.ref(!1);let $=null,xa=0,Dt=0;function ka(){if($){try{$.stop()}catch{}try{$.destroy&&$.destroy()}catch{}$=null}}function $e(){Dt+=1,ka(),U.value=!1}function Xn(e){return e==null?"":typeof e=="string"?e.replace(/\s+/g," ").trim():Array.isArray(e)?e.map(a=>typeof a=="string"?a:a&&typeof a=="object"?a.title||a.label||a.desc||a.msg||a.message||"":ae(a,"")).filter(Boolean).join(","):typeof e=="object"?e.title||e.label||e.desc||e.msg||e.message||"":ae(e,"")}function X(e,a={}){const{force:t=!1,onDone:i}=a||{};let o=!1;const r=()=>{if(!o&&(o=!0,typeof i=="function"))try{i()}catch{}};if(!wt.value&&!t){r();return}const s=Xn(e);if(!s){r();return}$e();const p=++Dt;try{const y=requirePlugin("WechatSI");U.value=!0,y.textToSpeech({lang:"zh_CN",tts:!0,content:s,success:h=>{if(p!==Dt){r();return}if(!h||!h.filename){U.value=!1,r();return}ka(),$=n.index.createInnerAudioContext(),$.src=h.filename,$.obeyMuteSwitch=!1,$.onPlay(()=>{U.value=!0}),$.onEnded(()=>{U.value=!1,r()}),$.onError(()=>{U.value=!1,r()}),$.onStop(()=>{U.value=!1,r()}),$.play()},fail:h=>{U.value=!1,n.index.__f__("warn","at tongji/pages/more.vue:3186","WechatSI textToSpeech failed",h),n.index.showToast({title:"语音不可用,请检查网络/插件",icon:"none",duration:2e3}),r()}});return}catch(y){n.index.__f__("warn","at tongji/pages/more.vue:3193","WechatSI plugin not available",y)}u(s,{duration:3200}),setTimeout(r,Math.min(6e3,1200+s.length*180))}function ce(e){return e==null||e===""?"":String(e).replace(/(\d+)\.(\d+)/g,(a,t,i)=>`${t}点${i}`)}function Jn(){const e=pt.value.fasting,a=pt.value.postprandial,t=pt.value.other,i=`${P.value||"您"}的最新血糖情况:`,o=[];if(e&&e.value!=="—"){let r=`空腹血糖 ${ce(e.value)} 毫摩每升`;e.isHigh?r+=",偏高,请遵医嘱。":r+="。",e.trend&&e.trend.dir!=="flat"&&(r+=`比上次${e.trend.dir==="up"?"升高":"下降"} ${ce(e.trend.delta.toFixed(1))}。`),o.push(r)}if(a&&a.value!=="—"){let r=`餐后血糖 ${ce(a.value)} 毫摩每升`;a.isHigh?r+=",偏高,请注意饮食。":r+="。",a.trend&&a.trend.dir!=="flat"&&(r+=`比上次${a.trend.dir==="up"?"升高":"下降"} ${ce(a.trend.delta.toFixed(1))}。`),o.push(r)}if(t&&t.value!=="—"){let r=`其他时段血糖 ${ce(t.value)} 毫摩每升`;t.isHigh?r+=",偏高,请遵医嘱。":r+="。",t.trend&&t.trend.dir!=="flat"&&(r+=`比上次${t.trend.dir==="up"?"升高":"下降"} ${ce(t.trend.delta.toFixed(1))}。`),o.push(r)}return o.length?i+o.join(" "):`${P.value||"您"}近期暂无血糖记录。`}function Qn(){const e=Jn();e&&X(e)}function Zn(){try{const e=n.index.getStorageSync("userData");if(!e)return;const a=String(e.real_name||e.nickname||"").trim();!P.value&&a&&(P.value=a);const t=Number(e.sex);!z.value&&(t===1||t===2)&&(z.value=t===1?1:0),!E.value&&e.age&&(E.value=Number(e.age)||0)}catch{}}function wa(){const e=n.index.getSystemInfoSync(),a=Number(e.statusBarHeight)||0,t=n.index.upx2px(300);let i=n.index.upx2px(24);try{const r=typeof n.index.getMenuButtonBoundingClientRect=="function"?n.index.getMenuButtonBoundingClientRect():null;r&&r.width>0&&(i=e.windowWidth-r.left+n.index.upx2px(8))}catch{}const o=a+t;Bt.value={height:`${o-35}px`,paddingTop:`${a}px`,boxSizing:"border-box"},jt.value={paddingRight:`${i}px`},Gt.value={paddingTop:`${o+n.index.upx2px(24)}px`}}async function ei(e){e=e||{},wa(),Vt=!1,H.value=!0;const a=Number(e.diagnosis_id||e.id||0);if(Number(e.patient_id||0),e.patient_name&&decodeURIComponent(String(e.patient_name)),Number(e.age),Number(e.gender),!await ea()||!j()){H.value=!1,u("登录失败,请稍后重试");return}Zn();const i=await ta();if(Array.isArray(i)&&i.length>0){let o=null;a&&(o=i.find(r=>Number(r.id)===Number(a))),o||(o=i[0]),await mt(o)}else if(c.value=0,ne.value=0,P.value="",E.value=0,z.value=0,aa()&&await gn(),!c.value){H.value=!1,aa()?u("暂时无法加载记录,请稍后重试"):u("请先在统计页授权手机号后再查看记录"),setTimeout(()=>{getCurrentPages().length>1?n.index.navigateBack():n.index.redirectTo({url:"/tongji/pages/weekly"})},1600);return}H.value=!1,await L(),(e.openDiet==="1"||e.openDiet===1)&&await ga({autoFill:!0})}n.onLoad(e=>{ei(e)}),n.onShareAppMessage(()=>{const e=W.value,a=Ht.value,t=Ua.value||`【稳糖打卡】${e.patientLabel}本周记录${e.recordDays}天(邀请码今日有效)`,i=a?`/tongji/pages/index?from=share&invite_code=${a}`:"/tongji/pages/more";return{title:t,path:i}}),n.onShow(()=>{wa(),!(H.value||Vt)&&c.value&&Ya()}),n.onPullDownRefresh(async()=>{await ea()&&await L(),n.index.stopPullDownRefresh()}),n.onHide(()=>{ue(),A(),$e()}),n.onUnload(()=>{ue(),A(),$e(),Oa()});const de=n.ref(0),ti=n.ref([]),$t=n.ref({}),Pt=n.ref([]),ai=n.ref(0),Da=n.ref(""),fe=n.ref(!1),Rt=n.ref(!1);function $a(e){return!!(e&&Number(e.code)===1)}function Pa(e){if(!(!e||typeof e!="object")){de.value=Number(e.points)||0,ti.value=Array.isArray(e.badges)?[...e.badges]:[];try{$t.value=e.task_awards?JSON.parse(JSON.stringify(e.task_awards)):{}}catch{$t.value=e.task_awards||{}}Pt.value=Array.isArray(e.today_tasks)?Ha(e.today_tasks.map(a=>({id:String(a.id||""),name:String(a.name||""),points:Number(a.points)||0,completed:!!a.completed,claimed:!!a.claimed}))):[],ai.value=Number(e.claimable_points)||0,e.message&&(Da.value=String(e.message))}}async function J(){if(!(!j()||!c.value))try{const e=await b.apiUrl({url:"/api/tcm/dailyGetGamify",method:"GET",data:{diagnosis_id:c.value}},!1);$a(e)&&e.data&&Pa(e.data)}catch(e){n.index.__f__("error","at tongji/pages/more.vue:3893","获取游戏化数据失败",e)}}const Ra=n.computed(()=>{const e=w.value[D.value];return e?v(e.fasting_blood_sugar)!==null||v(e.postprandial_blood_sugar)!==null||v(e.other_blood_sugar)!==null:!1}),Aa=n.computed(()=>{const e=w.value[D.value];return e?v(e.systolic_pressure)!==null||v(e.diastolic_pressure)!==null:!1}),La=n.computed(()=>{const e=D.value,a=dt.value[e];return!!(a&&(a.breakfast_foods||a.lunch_foods||a.dinner_foods))}),Ea=n.computed(()=>{const e=D.value,a=ft.value[e];return!!(a&&(a.exercise_type||a.duration))}),ni=["glucose","bp","diet","exercise"],ii={glucose:"glucose",bp:"activity",diet:"utensils",exercise:"flame"};function Pe(e,a,t={}){return!!(a[e]||a.blood&&(e==="glucose"&&t.glucose||e==="bp"&&t.bp))}function Fa(){return{glucose:Ra.value,bp:Aa.value,diet:La.value,exercise:Ea.value}}function Na(e,a=!1){const t=Fa();return Object.prototype.hasOwnProperty.call(t,e)?!!t[e]:!!a}function Ca(e){return ii[e]||"check-circle"}function Ha(e){if(!Array.isArray(e)||!e.length)return[];const a=new Set(e.map(t=>t.id));if(a.has("glucose")||a.has("bp"))return e;if(a.has("blood")){const t=e.find(o=>o.id==="blood"),i=e.filter(o=>o.id!=="blood");return t?[{...t,id:"glucose",name:"测血糖"},{...t,id:"bp",name:"测血压"},...i]:e}return e}const Q=n.computed(()=>{const e=D.value,a=$t.value[e]||{},t=Fa(),i=o=>({...o,completed:Na(o.id,o.completed),claimed:Pe(o.id,a,t)});return Pt.value.length?Ha(Pt.value).map(i):[{id:"glucose",name:"测血糖",points:10,completed:t.glucose,claimed:Pe("glucose",a,t)},{id:"bp",name:"测血压",points:10,completed:t.bp,claimed:Pe("bp",a,t)},{id:"diet",name:"饮食",points:10,completed:t.diet,claimed:Pe("diet",a,t)},{id:"exercise",name:"运动",points:10,completed:t.exercise,claimed:Pe("exercise",a,t)}]}),Z=n.computed(()=>{const e=new Map(Q.value.map(a=>[a.id,a]));return ni.map(a=>e.get(a)).filter(Boolean)}),I=n.computed(()=>Q.value.filter(e=>e.completed&&!e.claimed).reduce((e,a)=>e+a.points,0)),ve=n.computed(()=>I.value>0),Ze=n.computed(()=>{const e=Z.value;return e.length>0&&e.every(a=>a.completed&&a.claimed)}),ge=n.computed(()=>Z.value.find(e=>!e.completed)||null),oi=n.computed(()=>{if(ve.value)return`有 ${I.value} 积分待领,点击浇水查看进度并领取`;if(Ze.value)return"今日任务已全部完成,小树喝饱啦 🌱";const e=ge.value;return e?`还差「${e.name}」等项,点击浇水查看今日进度`:"点击浇水查看今日任务进度"}),ri=n.computed(()=>{const e=Q.value;return e.length>0&&e.every(a=>a.completed&&a.claimed)});n.computed(()=>{var t;const e=[],a=Number((t=ia.value)==null?void 0:t.days)||0;return na.value&&e.push({id:"today",label:"今日打卡",icon:"check-circle",color:"#386641"}),a>=3&&e.push({id:"streak",label:`连击${a}天`,icon:"flame",color:"#EA580C"}),a>=7&&e.push({id:"week",label:"一周达人",icon:"trophy",color:"#CA8A04"}),ra.value>=5&&e.push({id:"w5",label:"本周5天+",icon:"calendar",color:"#204E2B"}),de.value>=50&&e.push({id:"p50",label:"积分50+",icon:"sparkles",color:"#204E2B"}),de.value>=100&&e.push({id:"p100",label:"积分破百",icon:"trophy",color:"#7C3AED"}),de.value>=200&&e.push({id:"p200",label:"积分200+",icon:"sparkles",color:"#7C3AED"}),k.value>=3&&e.push({id:"tree3",label:"小树苗",icon:"glucose",color:"#0D9488"}),k.value>=5&&e.push({id:"tree5",label:"拔节高",icon:"activity",color:"#386641"}),k.value>=7&&e.push({id:"tree7",label:"初绽香",icon:"heart",color:"#EA580C"}),_.value.isMax&&e.push({id:"tree9",label:"圆满树",icon:"trophy",color:"#CA8A04"}),e});const At=n.ref(!1),Ia=n.ref(""),Lt=n.ref(""),pe=n.ref(null);n.ref(!1);const Ma=n.ref("");let Et=null,Ft=null;const et=n.ref([]),tt=n.ref([]),me=n.ref(null),be=n.ref([]);let M=[];function Oa(){M.forEach(e=>clearTimeout(e)),M=[],et.value=[],tt.value=[],me.value=null,be.value=[]}function li(){const e=Date.now(),a=[];for(let t=0;t<15;t++)a.push({key:`d${e}_${t}`,left:Math.random()*100,delay:Math.random()*.4});et.value=a,M.push(setTimeout(()=>{et.value=[]},600))}function ui(){const e=Date.now(),a=[];for(let i=0;i<12;i++)a.push({key:`s${e}_${i}`,left:40+(Math.random()-.5)*40,top:40+(Math.random()-.5)*40,dur:.6+Math.random()*.4});tt.value=a,M.push(setTimeout(()=>{tt.value=[]},1e3)),me.value={key:`sd${e}`},M.push(setTimeout(()=>{me.value=null},2e3));const t=[];for(let i=0;i<20;i++)t.push({key:`p${e}_${i}`,left:Math.random()*100,size:32+Math.random()*32,delay:i*.05,kind:Math.random()>.5?"south":"tri"});be.value=t,M.push(setTimeout(()=>{be.value=[]},1500))}function si(){M.push(setTimeout(()=>{Rt.value=!0,ui(),M.push(setTimeout(()=>{Rt.value=!1},800))},600))}function he(){try{n.index.vibrateShort({type:"light"})}catch{}}function at(e,a=""){Et&&clearTimeout(Et),Ia.value=e,Lt.value=a,At.value=!0,Et=setTimeout(()=>{At.value=!1,Lt.value=""},2400)}function ci(e){pe.value={text:e,key:Date.now()},setTimeout(()=>{pe.value=null},1100)}function di(e){e&&(Ma.value=e,Ft&&clearTimeout(Ft),Ft=setTimeout(()=>{Ma.value=""},700))}function fi(){if(fe.value)return;const e=Fe.pickTreeWhisper(k.value);u(e,{duration:2800}),he()}function nt(e="",a=900){setTimeout(()=>{if(I.value>0){const i=e?`今日${e}已录入完成,`:"今日已录入完成,";u(`${i}点击「给小树浇水」领取 ${I.value} 积分`,{duration:3200});return}const t=ge.value;if(t){const i=e?`今日${e}已录入完成。`:"今日该项已录入完成。";u(`${i}继续完成「${t.name}」,再给小树浇水领积分`,{duration:3200});return}Ze.value&&u("今日任务已全部完成,小树喝饱啦 🌱",{duration:2800})},a)}async function vi(){if(!c.value||fe.value||!ve.value)return;const e=k.value;fe.value=!0,Oa(),li(),si(),he(),M.push(setTimeout(()=>{fe.value=!1},1400));try{const a=await b.apiUrl({url:"/api/tcm/dailyWaterTree",method:"POST",data:{diagnosis_id:c.value}},!1);if(!$a(a)){u(a&&a.msg||"浇水失败");return}const t=a.data&&typeof a.data=="object"?a.data:{},i=Number(t.added_points)||0;Pa({...t,message:t.message||a.msg||""}),await n.nextTick$1();const o=ae(t.message||a.msg,"");if(i>0){ci(i),he(),te(),at("浇水成功",o||`+${i} 稳糖积分,小树咕咚喝饱啦`),(Array.isArray(t.claimed_tasks)?t.claimed_tasks:[]).forEach(h=>di(h));const y=k.value;if(y>e){const h=Fe.TREE_LEVELS[y]||Fe.TREE_LEVELS[0];setTimeout(()=>at("小树升级啦",`Lv.${y} ${h.name} · ${h.desc}`),520)}setTimeout(()=>{Q.value.every(h=>h.completed&&h.claimed)&&at("今日任务大满贯","明天继续来浇浇水吧")},900);return}o&&u(o,{duration:2800});const r=Q.value.find(p=>!p.completed&&!p.claimed);if(r){ut(r);return}const s=Array.isArray(t.pending_tasks)?t.pending_tasks:[];if(s.length){const p=Q.value.find(y=>y.id===s[0].id)||Q.value.find(y=>y.name===s[0].name);p&&!p.completed?ut(p):o||u(`先完成:${s[0].name}`,{duration:2800});return}if(Number(t.claimable_points)>0){u("还有积分待领取,请再点一次浇水");return}ri.value&&!o&&u("今日奖励已全部领取",{duration:2800})}catch{u("浇水失败,请稍后重试")}}const _=n.computed(()=>Fe.calcTreeFromPoints(de.value)),k=n.computed(()=>_.value.level),gi=n.computed(()=>_.value.progress),Ba=n.computed(()=>_.value.name),pi=n.computed(()=>B.speciesEmojiAtLevel(ee.value,k.value));n.computed(()=>_.value.mood);const ee=n.ref("classic"),Re=n.ref(!1),mi=B.estimateDaysToMaxLevel(),ja=n.computed(()=>B.getTreeSpecies(ee.value));function Ga(e=c.value){return`tongji_tree_species_v1_${Number(e)||0}`}function bi(e=c.value){if(!e){ee.value="classic";return}try{const a=n.index.getStorageSync(Ga(e));if(a&&B.getTreeSpecies(a)){ee.value=a;return}}catch{}ee.value="classic"}function hi(e){if(B.getTreeSpecies(e)){ee.value=e;try{n.index.setStorageSync(Ga(),e)}catch{}Re.value=!1,u(`已切换为「${B.getTreeSpecies(e).name}」`,{duration:2200}),he()}}function _i(){Re.value=!0}function Va(){Re.value=!1}const it=n.ref(!1),yi=n.computed(()=>Z.value.map(e=>{let a="未记录",t="pending",i="今日尚未打开此项";return e.claimed?(a="已完成",t="claimed",i="今日已录入,积分已领取"):e.completed&&(a="待浇水",t="water",i=`今日已录入,浇水可领 +${e.points} 积分`),{...e,statusLabel:a,statusKind:t,statusSub:i}})),Si=n.computed(()=>{if(Ze.value)return"今日四项任务已全部完成并领取,小树喝饱啦,明天继续加油 🌱";const e=Z.value.filter(t=>!t.completed),a=Z.value.filter(t=>t.completed&&!t.claimed);return ve.value?`今日已打开 ${a.length} 项记录,浇水可领 ${I.value} 积分`:e.length?`今日还差 ${e.length} 项未打开:${e.map(t=>t.name).join("、")}`:"先完成今日记录,再给小树浇水领积分"}),Nt=n.computed(()=>{const e=ja.value;return _.value.isMax?`${e.name} 已满级 · 继续打卡巩固习惯`:`${e.name} · Lv.${k.value} ${Ba.value} · 再积 ${_.value.pointsToNext} 分升级「${_.value.nextName}」`});function Ti(){fe.value||(Ct(),he())}function Ct(){it.value=!0}function te(){it.value=!1}function xi(){te(),vi()}function ki(){const e=ge.value;if(!e){te();return}te(),ut(e,{skipGuide:!0})}const wi=n.computed(()=>_.value.isMax?"已满级 · 圆满树":`${_.value.xpInLevel}/${_.value.xpNeed} XP`);n.computed(()=>_.value.isMax?"您已养成满级稳糖树,习惯就是最好的奖励":I.value>0?`浇水后可再积 ${I.value} 分,离升级更近一步`:`再积 ${_.value.pointsToNext} 分,升级「${_.value.nextName}」`);const Di=n.computed(()=>{if(_.value.isMax)return"已满级,继续浇水巩固习惯";const e=_.value.pointsToNext,a=k.value+1;return`还差 ${e} XP 升级至 Lv.${a}`}),ot=n.ref(!1),Ua=n.ref(""),Ht=n.ref(""),Ae=n.ref({like_count:0,summary_line:"分享战报给家人,邀请他们为您点赞鼓劲",recent:[]}),It=n.ref(0);function Wa(e=c.value){return`tongji_family_like_seen_${Number(e)||0}_${D.value}`}function za(e=c.value){try{return Number(n.index.getStorageSync(Wa(e)))||0}catch{return 0}}function $i(e,a=c.value){try{n.index.setStorageSync(Wa(a),Number(e)||0)}catch{}}function Pi(e){const a=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),t=a.getUTCDay()||7;a.setUTCDate(a.getUTCDate()+4-t);const i=new Date(Date.UTC(a.getUTCFullYear(),0,1));return Math.ceil(((a-i)/864e5+1)/7)}const W=n.computed(()=>{const e=(P.value||"我").trim(),a=e.length>6?`${e.slice(0,6)}…`:e,t=new Date,i=`${t.getFullYear()}年 第${Pi(t)}周`,o=ra.value,r=kn.value;let s="坚持记录,就是在照顾未来的自己。";return o>=7?s="本周每天都留下了记录,这份自律值得骄傲!":r>=5?s=`本周有 ${r} 天完成了空腹+餐后记录,习惯越来越稳。`:o>=4?s=`本周已记录 ${o} 天,比不记录强一百倍。`:o>0?s="好的开始!下周试着多记录几天。":s="从今天记一笔开始,小树就会发芽。",{patientLabel:a,weekLabel:i,recordDays:o,completeDays:r,streakDays:ia.value.days,quote:s}}),Ri=n.computed(()=>k.value);n.computed(()=>Number(invitePreview.value.tree_level)||0),n.computed(()=>{const e=invitePreview.value.daily_records;return Array.isArray(e)?e:[]});const rt=["每天记一笔,就是在照顾未来的自己。","坚持记录比纠结数值更重要,您做得很好。","给树浇浇水,也给自己点个赞。","家人会看到您的努力,习惯比完美更珍贵。","空腹、餐后各记一次,完整一日更有成就感。"],lt=n.ref(0),Ai=n.computed(()=>{const e=Z.value.find(a=>!a.completed);return(e==null?void 0:e.id)==="glucose"?"先完成血糖记录,再给小树浇水领积分。":(e==null?void 0:e.id)==="bp"?"先测血压并记录,再给小树浇水领积分。":(e==null?void 0:e.id)==="diet"?"记下今日饮食,再给小树浇水领积分。":(e==null?void 0:e.id)==="exercise"?"动一动、记一记,再给小树浇水领积分。":ve.value?`有 ${I.value} 积分待领,点击「给小树浇水」吧。`:Ze.value?"今日任务已全部完成,小树喝饱啦,明天继续加油。":rt[lt.value%rt.length]}),Le=n.computed(()=>{const e=Ai.value,a=["给小树浇水","今日第一格就亮起来"];for(const t of a)if(e.includes(t)){const i=e.indexOf(t);return{prefix:e.slice(0,i),highlight:t,suffix:e.slice(i+t.length)}}return{prefix:e,highlight:"",suffix:""}});function Li(){lt.value=(lt.value+1)%rt.length;const e=rt[lt.value];wt.value?X(e):u(e,{duration:2800})}function Ei(){if(getCurrentPages().length>1){n.index.navigateBack({delta:1});return}n.index.navigateTo({url:"/tongji/pages/weekly"})}function Fi(){n.index.navigateTo({url:"/tongji/pages/weekly"})}function ut(e,a={}){if(!e)return;const t=!!a.skipGuide;if(!e.completed){if(Na(e.id,e.completed)){u(`今日「${e.name}」已录入${e.claimed?",积分已领取":",请去浇水领积分"}`,{duration:2800}),e.claimed||Ct();return}if(!c.value){u("请先选择就诊卡");return}if(!n.index.getStorageSync("token")){u("请先登录后再录入");return}if(t||u(`完成「${e.name}」后,点击「给小树浇水」领积分`,{duration:2600}),e.id==="glucose"){ht();return}if(e.id==="bp"){Ln();return}if(e.id==="diet"){ga();return}if(e.id==="exercise"){Wn();return}if(e.id==="blood"){ht();return}u(`请先完成:${e.name}`);return}if(e.claimed){u(`今日「${e.name}」已录入,积分已领取`);return}Ct()}function Ni(){return`tongji_invite_${c.value}_${D.value}`}async function qa(){if(!c.value)return"";const e=Ni();try{const a=n.index.getStorageSync(e);if(a&&a.invite_code&&a.invite_date===D.value)return Ht.value=a.invite_code,a.invite_code}catch{}try{const a=await b.apiUrl({url:"/api/tcm/dailyCreateShareInvite",method:"POST",data:{diagnosis_id:c.value}},!1);if(a&&a.code===1&&a.data&&a.data.invite_code){const t=a.data.invite_code;Ht.value=t;try{n.index.setStorageSync(e,{invite_code:t,invite_date:D.value})}catch{}return t}a!=null&&a.msg&&u(a.msg)}catch{u("生成邀请码失败")}return""}async function Ci(){const e=await qa();if(!e)return;const a=W.value;Ua.value=`【稳糖打卡】${a.patientLabel}本周记录${a.recordDays}天,邀请码 ${e}(今日有效)`}async function Hi(){if(!c.value){u("请先选择就诊卡");return}await qa(),ot.value=!0}function Mt(){ot.value=!1}async function Ya(){if(!(!j()||!c.value||!n.index.getStorageSync("token")))try{const a=await b.apiUrl({url:"/api/tcm/dailyFamilyLikeSummary",method:"GET",data:{diagnosis_id:c.value}},!1);if(a&&a.code===1&&a.data){const t=za(),i=Math.max(It.value,t),o=Number(a.data.like_count)||0;if(Ae.value={like_count:o,summary_line:a.data.summary_line||"",recent:Array.isArray(a.data.recent)?a.data.recent:[]},o>i){const r=o-i;at(r===1&&i===0?"首个家人点赞":"收到家人鼓励",r===1?"分享真的有用,继续加油":`新增 ${r} 位家人点赞,共 ${o} 人`),he()}It.value=o,$i(o)}}catch{}}function Ii(){if(Ae.value.like_count>0){wt.value?X(Ae.value.summary_line):u(Ae.value.summary_line,{duration:2400});return}Hi()}return(e,a)=>n.e({a:n.p({show:At.value,title:Ia.value,subtitle:Lt.value}),b:be.value.length},be.value.length?{c:n.f(be.value,(t,i,o)=>({a:n.t(t.kind==="south"?"↓":"▼"),b:t.key,c:t.kind==="south"?1:"",d:t.left+"vw",e:t.size+"rpx",f:t.delay+"s"}))}:{},{d:H.value},H.value?{}:{},{e:!H.value},H.value?{}:n.e({f:n.p({name:"chevron-left",size:"md",color:"#ffffff"}),g:n.o(Ei,"82"),h:n.t(P.value||"健康档案"),i:n.p({name:"glucose",size:"sm",color:"#ffffff"}),j:n.o(Fi,"5e"),k:n.p({name:"refresh",size:"md",color:"#ffffff"}),l:n.o(bn,"a8"),m:n.s(jt.value),n:n.s(Bt.value),o:n.t(de.value),p:n.f(Z.value,(t,i,o)=>n.e({a:t.completed},t.completed?{b:"5a4b0d9c-4-"+o,c:n.p({name:"check",size:"sm",color:"#006c49"})}:{},{d:t.completed?"":1,e:n.t(t.points),f:"5a4b0d9c-5-"+o,g:n.p({name:Ca(t.id),size:"sm",color:"#006c49"}),h:n.t(t.name),i:t.completed&&t.claimed},t.completed&&t.claimed?{}:t.completed?{}:{},{j:t.completed,k:t.id,l:t.completed?1:"",m:n.o(r=>ut(t),t.id)})),q:n.t(k.value),r:n.t(Ba.value),s:n.t(ja.value.name),t:n.p({name:"chevron-right",size:"sm",color:"#006c49"}),v:n.o(_i,"60"),w:_.value.isMax},_.value.isMax?{x:n.t(Di.value)}:{y:n.t(_.value.pointsToNext),z:n.t(k.value+1)},{A:n.t(wi.value),B:gi.value+"%",C:n.f(et.value,(t,i,o)=>({a:t.key,b:t.left+"%",c:t.delay+"s"})),D:n.t(pi.value),E:Rt.value?1:"",F:n.f(tt.value,(t,i,o)=>({a:t.key,b:t.left+"%",c:t.top+"%",d:t.dur+"s"})),G:me.value},me.value?{H:me.value.key}:{},{I:pe.value},pe.value?{J:n.t(pe.value.text),K:pe.value.key}:{},{L:n.o(fi,"4a"),M:n.p({name:"droplet",size:"md",color:"#FFFFFF"}),N:fe.value?1:"",O:n.o(Ti,"9b"),P:n.t(oi.value),Q:c.value},c.value?n.e({R:n.f(Wt,(t,i,o)=>({a:n.t(t.label),b:t.value,c:ye.value===t.value?1:"",d:n.o(r=>mn(t.value),t.value)})),S:oe.value.length>0},oe.value.length>0?{T:n.t(Pn.value),U:n.t(Dn.value),V:n.t($n.value),W:n.p({name:"chevron-right",size:"md",color:"#006c49"}),X:n.f(wn.value,(t,i,o)=>n.e({a:n.t(t.day),b:t.inRange&&t.level>0},t.inRange&&t.level>0?{c:t.isHigh?1:""}:{},{d:t.date,e:t.inRange?"":1,f:t.inRange&&t.level>0&&!t.isHigh?1:"",g:t.inRange&&t.isHigh?1:"",h:t.isToday&&t.inRange&&t.level===0?1:"",i:t.inRange&&t.level===0&&!t.isToday?1:"",j:!t.inRange&&t.level<0?1:"",k:n.o(r=>t.inRange&&t.level>0?Rn(t.date):null,t.date)})),Y:n.t(na.value?"今日已完成记录":"今日还没有记录"),Z:n.o(t=>ht(),"d9")}:{},{aa:n.t(Se.value.length),ab:Ne.value},Ne.value?{}:Se.value.length===0?{}:{ad:n.f(Se.value,(t,i,o)=>n.e({a:n.t(t.dateLabel),b:n.t(t.weekday),c:t.blood},t.blood?n.e({d:t.blood.isHighFasting},t.blood.isHighFasting?{}:t.blood.isLowFasting?{}:{},{e:t.blood.isLowFasting,f:n.t(Be(t.blood.fasting_blood_sugar)),g:t.blood.isHighFasting?1:"",h:t.blood.isLowFasting?1:"",i:t.blood.isHighFasting?1:"",j:t.blood.isLowFasting?1:"",k:Be(t.blood.postprandial_blood_sugar)!=="——"},Be(t.blood.postprandial_blood_sugar)!=="——"?n.e({l:t.blood.isHighPostprandial},t.blood.isHighPostprandial?{}:t.blood.isLowPostprandial?{}:{},{m:t.blood.isLowPostprandial,n:n.t(Be(t.blood.postprandial_blood_sugar)),o:t.blood.isHighPostprandial?1:"",p:t.blood.isLowPostprandial?1:""}):{},{q:t.blood.isHighPostprandial?1:"",r:t.blood.isLowPostprandial?1:""}):{},{s:t.date,t:`day-${t.date.replace(/-/g,"")}`}))},{ac:Se.value.length===0,ae:n.p({name:"heart",size:"md",color:"#a43a3a"}),af:n.p({name:"chevron-right",size:"md",color:"#6c7a71"}),ag:n.o(Ii,"1d")}):{},{ah:c.value},c.value?n.e({ai:n.t(Le.value.prefix),aj:Le.value.highlight},Le.value.highlight?{ak:n.t(Le.value.highlight)}:{},{al:n.t(Le.value.suffix),am:n.o(Li,"67")}):{},{an:q.value.length>0},q.value.length>0?{ao:n.t(q.value.length),ap:n.f(q.value,(t,i,o)=>n.e({a:n.t(t.patient_name||"未填"),b:t.age},t.age?{c:n.t(t.age)}:{},{d:t.id,e:Number(t.id)===Number(c.value)?1:"",f:n.o(r=>pn(t),t.id)}))}:{},{aq:n.s(Gt.value),ar:d.value.visible},d.value.visible?n.e({as:n.t(d.value.id?"修改今日血糖":"录入今日血糖"),at:n.t(je.value),av:n.t(P.value||"本人"),aw:n.o(sa,"f9"),ax:d.value.loading},d.value.loading?{}:n.e({ay:n.unref(_t)},n.unref(_t)?{az:n.p({active:S("glucose"),"on-dark":S("glucose")}),aA:n.t(S("glucose")?"正在聆听…松手结束":"长按说话,自动填写"),aB:S("glucose")?1:"",aC:l.active?1:"",aD:n.o(t=>Xe("glucose"),"bc"),aE:n.o(N,"bb"),aF:n.o(N,"bc"),aG:n.o(Ye,"4a")}:{},{aH:d.value.fasting_blood_sugar,aI:n.o(t=>Ve("fasting_blood_sugar",t),"0b"),aJ:d.value.postprandial_blood_sugar,aK:n.o(t=>Ve("postprandial_blood_sugar",t),"bc"),aL:d.value.other_blood_sugar,aM:n.o(t=>Ve("other_blood_sugar",t),"5d"),aN:d.value.remark,aO:n.o(t=>Ve("remark",t),"c9"),aP:!R.value,aQ:n.o(C,"7e"),aR:n.o(C,"49")}),{aS:d.value.id},d.value.id?{aT:d.value.submitting?1:"",aU:n.o(An,"75")}:{},{aV:n.t(d.value.submitting?"提交中…":d.value.id?"保存修改":"提交录入"),aW:d.value.submitting||d.value.loading?1:"",aX:n.o(ca,"4a"),aY:n.o(()=>{},"21"),aZ:n.o(sa,"3d")}):{},{ba:f.value.visible},f.value.visible?n.e({bb:n.t(f.value.id?"修改今日血压":"录入今日血压"),bc:n.t(je.value),bd:n.t(P.value||"本人"),be:n.o(da,"5a"),bf:f.value.loading},f.value.loading?{}:{bg:n.p({active:S("bp"),"on-dark":S("bp")}),bh:n.t(S("bp")?"正在聆听…松手结束":"长按说话,自动填写"),bi:S("bp")?1:"",bj:n.o(t=>Xe("bp"),"a3"),bk:n.o(N,"11"),bl:n.o(N,"7d"),bm:n.o(Ye,"61"),bn:f.value.systolic_pressure,bo:n.o(t=>Ue("systolic_pressure",t),"09"),bp:f.value.diastolic_pressure,bq:n.o(t=>Ue("diastolic_pressure",t),"70"),br:f.value.western_medicine,bs:n.o(t=>Ue("western_medicine",t),"af"),bt:f.value.insulin,bv:n.o(t=>Ue("insulin",t),"a1"),bw:!R.value,bx:n.o(C,"0f"),by:n.o(C,"5d")},{bz:f.value.id},f.value.id?{bA:f.value.submitting?1:"",bB:n.o(Yn,"f0")}:{},{bC:n.t(f.value.submitting?"提交中…":"保存"),bD:f.value.submitting||f.value.loading?1:"",bE:n.o(qn,"04"),bF:n.o(()=>{},"a6"),bG:n.o(da,"a0")}):{},{bH:g.value.visible},g.value.visible?n.e({bI:n.t(je.value),bJ:n.o(pa,"b2"),bK:g.value.loading},g.value.loading?{}:n.e({bL:x.value&&x.value.breakfast},x.value&&x.value.breakfast?n.e({bM:n.t(x.value.breakfast),bN:x.value.drinks},x.value.drinks?{bO:n.t(x.value.drinks)}:{},{bP:n.t(x.value.lunch),bQ:n.t(x.value.dinner),bR:n.o(va,"45")}):{},{bS:n.p({active:S("diet"),"on-dark":S("diet")}),bT:n.t(S("diet")?"正在聆听…松手结束":"长按说话,自动填写"),bU:S("diet")?1:"",bV:n.o(t=>Xe("diet"),"16"),bW:n.o(N,"b7"),bX:n.o(N,"0d"),bY:n.o(Ye,"1a"),bZ:g.value.breakfast_foods,ca:n.o(t=>We("breakfast_foods",t),"15"),cb:g.value.lunch_foods,cc:n.o(t=>We("lunch_foods",t),"6c"),cd:g.value.dinner_foods,ce:n.o(t=>We("dinner_foods",t),"2c"),cf:g.value.note,cg:n.o(t=>We("note",t),"84"),ch:!R.value,ci:n.o(C,"05"),cj:n.o(C,"0e")}),{ck:n.t(g.value.submitting?"提交中…":"保存饮食"),cl:g.value.submitting?1:"",cm:n.o(En,"8f"),cn:n.o(()=>{},"28"),co:n.o(pa,"25")}):{},{cp:m.value.visible},m.value.visible?n.e({cq:n.t(je.value),cr:n.o(Ta,"1e"),cs:m.value.loading},m.value.loading?{}:{ct:n.p({active:S("exercise"),"on-dark":S("exercise")}),cv:n.t(S("exercise")?"正在聆听…松手结束":"长按说话,自动填写"),cw:S("exercise")?1:"",cx:n.o(t=>Xe("exercise"),"c8"),cy:n.o(N,"2c"),cz:n.o(N,"5d"),cA:n.o(Ye,"35"),cB:m.value.exercise_type,cC:n.o(t=>Sa("exercise_type",t),"ec"),cD:m.value.duration,cE:n.o(t=>Sa("duration",t),"68"),cF:n.f(Fn,(t,i,o)=>({a:n.t(t.label),b:t.value,c:m.value.intensity===t.value?1:"",d:n.o(r=>m.value.intensity=t.value,t.value)})),cG:!R.value,cH:n.o(C,"34"),cI:n.o(C,"3c")},{cJ:n.t(m.value.submitting?"提交中…":"保存运动"),cK:m.value.submitting?1:"",cL:n.o(zn,"cf"),cM:n.o(()=>{},"86"),cN:n.o(Ta,"0f")}):{},{cO:(n.unref(G)||n.unref(F))&&!ze.value&&!l.active},(n.unref(G)||n.unref(F))&&!ze.value&&!l.active?{cP:n.p({name:"mic",size:"lg",color:"#ffffff"}),cQ:n.unref(F)?1:"",cR:n.t(n.unref(F)?"正在聆听…":"准备录音…")}:{},{cS:ot.value},ot.value?{cT:n.o(Mt,"a0"),cU:n.p({level:Ri.value,size:"md"}),cV:n.t(W.value.patientLabel),cW:n.t(W.value.weekLabel),cX:n.t(W.value.recordDays),cY:n.t(W.value.completeDays),cZ:n.t(W.value.streakDays),da:n.t(W.value.quote),db:n.o(Ci,"58"),dc:n.o(Mt,"43"),dd:n.o(()=>{},"2e"),de:n.o(Mt,"9b")}:{},{df:it.value},it.value?n.e({dg:n.o(te,"55"),dh:n.t(Si.value),di:n.f(yi.value,(t,i,o)=>({a:"5a4b0d9c-17-"+o,b:n.p({name:Ca(t.id),size:"sm",color:"#006c49"}),c:n.t(t.name),d:n.t(t.statusSub),e:n.t(t.statusLabel),f:t.id,g:n.n("is-"+t.statusKind)})),dj:Nt.value},Nt.value?{dk:n.t(Nt.value)}:{},{dl:ve.value},ve.value?{dm:n.t(I.value),dn:n.o(xi,"57")}:ge.value?{dq:n.t(ge.value.name),dr:n.o(ki,"89")}:{ds:n.o(te,"bb")},{dp:ge.value,dt:n.o(()=>{},"d2"),dv:n.o(te,"f0")}):{},{dw:Re.value},Re.value?{dx:n.o(Va,"2d"),dy:n.t(n.unref(mi)),dz:n.t(n.unref(Fe.TREE_XP_PER_LEVEL)),dA:n.f(n.unref(B.TREE_SPECIES_LIST),(t,i,o)=>({a:n.t(n.unref(B.speciesEmojiAtLevel)(t.id,k.value)),b:n.t(t.name),c:n.t(t.tagline),d:n.f(n.unref(B.speciesGrowthRoadmap)(t.id),(r,s,p)=>({a:n.t(r.emoji),b:n.t(r.level),c:n.t(r.name),d:r.level,e:k.value>=r.level?1:"",f:k.value===r.level?1:""})),e:t.id,f:ee.value===t.id?1:"",g:n.o(r=>hi(t.id),t.id)})),dB:n.o(()=>{},"50"),dC:n.o(Va,"d3")}:{}),{dD:n.o(C,"b5"),dE:n.o(C,"3b")})}},Xi=n._export_sfc(en,[["__scopeId","data-v-5a4b0d9c"]]);en.__runtimeHooks=2;wx.createPage(Xi);
|
||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/tongji/pages/more.js.map
|