Files
2026-08-17 13:59:12 +08:00

3 lines
38 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";const t=require("../../common/vendor.js"),La=require("../composables/useDietAi.js");Math||(Ga+ja)();const ja=()=>"../components/SugarTreeGraphic.js",Ga=()=>"../components/TongjiIcon.js",qt="tongji_viewer_key_v1",Yt={__name:"index",setup(Oa){const{proxy:S}=t.getCurrentInstance();function U(e,n=""){if(e==null||e==="")return n;if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e)){const a=e.map(r=>r==null?"":typeof r=="string"?r:typeof r=="number"||typeof r=="boolean"?String(r):typeof r=="object"?r.msg||r.message||r.error||r.title||r.label||"":String(r)).filter(Boolean);return a.length?a.join(";"):n}return typeof e=="object"?e.msg||e.message||e.error||e.title||e.label||n:String(e)}function b(e,n={}){const a=U(e,"");a&&t.index.showToast({title:a,icon:n.icon||"none",duration:n.duration})}const p=t.ref(0),O=t.ref(0),I=t.ref(""),P=t.ref(0),K=t.ref(0),{dietAiRecommend:d,dietAiLoading:g,dietAiStreaming:me,dietAiReplacing:lt,dietAiStreamField:T,dietAiAskText:Vt,dietAiAsking:L,dietAiAskResult:H,hasDietAiMealContent:ot,fetchDietAiRecommend:Xt,refreshDietAiRecommend:it,askDietAiFood:Te,onDietAiAskInput:ut,applyDietAiToForm:st,openDietForm:ct}=La.useDietAi(S,{diagnosisId:p,showUserToast:b,formatUserMessage:U}),ft=t.computed(()=>(d.value&&Array.isArray(d.value.analysis)?d.value.analysis:[]).filter(n=>n&&typeof n=="object")),dt=t.computed(()=>ft.value.length>0),k=t.computed(()=>{const e=d.value&&d.value.exercise;return e&&typeof e=="object"&&Array.isArray(e.items)&&e.items.length?e:null});function Kt(e){const n=Number(e);return Number.isFinite(n)?n>=80?"rate-good":n>=50?"rate-mid":"rate-low":"rate-mid"}function vt(e){return e==null||e===""?"—":e}const j=t.ref(!1),J=t.ref(""),ne=t.ref(!1),M=t.ref(0),be=t.ref(!1),De=t.ref(!1),gt=t.ref(!1),re=t.ref([]),le=t.ref("7"),pt=[{value:"7",label:"最近 7 天"},{value:"30",label:"最近 30 天"}],Ae=t.ref([]),Ne=t.ref([]),Me=t.ref([]),Fe=t.ref([]),w=t.ref(null);let Ue=null;const W=t.ref({fasting:!0,postprandial:!0});let _e=null,oe=null,ie=0,Ce=0,ue=1,ye=null;t.computed(()=>P.value>0?`${P.value} 岁`:""),t.computed(()=>({1:"男",2:"女"})[Number(K.value)]||"");const Jt=t.computed(()=>{const e=pt.find(n=>n.value===le.value);return e?e.label:""});function Q(e){const n=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${n}-${a}-${r}`}function Oe(e){if(!e)return new Date;const[n,a,r]=e.split("-").map(Number);return new Date(n,(a||1)-1,r||1)}const ht=t.computed(()=>{const e=le.value==="30"?30:7,n=new Date;n.setHours(0,0,0,0);const a=new Date(n);return a.setDate(a.getDate()-(e-1)),{start:Q(a),end:Q(n)}}),We=t.computed(()=>{const{start:e,end:n}=ht.value;if(!e||!n)return[];const a=[],r=Oe(n),l=Oe(e).getTime();for(;r.getTime()>=l;)a.push(Q(r)),r.setDate(r.getDate()-1);return a}),$=t.computed(()=>[...We.value].reverse());function v(e){if(e==null||e==="")return null;const n=Number(e);return Number.isFinite(n)&&n!==0?n:null}function qe(e){const n=Number(e);return!Number.isFinite(n)||n<=0?{fasting:7,postprandial:10}:n<50?{fasting:7,postprandial:9}:{fasting:8,postprandial:10}}function Qt(e){const n=v(e),a=qe(P.value);return n!==null&&a!==null&&n>=a.fasting}function mt(e){const n=v(e),a=qe(P.value);return n!==null&&a!==null&&n>=a.postprandial}function Zt(e){if(!e)return!1;const n=v(e.systolic_pressure),a=v(e.diastolic_pressure);return n!==null&&n>140||a!==null&&a>90}function ea(e){const n=e==null?void 0:e.systolic_pressure,a=e==null?void 0:e.diastolic_pressure;return(n==null||n===""||n===0)&&(a==null||a===""||a===0)?"—":`${n||"—"} / ${a||"—"}`}const ta={1:"低强度",2:"中强度",3:"高强度"},F=t.computed(()=>{const e={};for(const n of Ae.value){const a=String(n.record_date||"");if(!a)continue;e[a]||(e[a]={record_date:a,record_time:n.record_time||"",fasting_blood_sugar:"",postprandial_blood_sugar:"",other_blood_sugar:"",systolic_pressure:"",diastolic_pressure:"",western_medicine:"",insulin:"",remark:""});const r=e[a],l=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin","remark"];for(const o of l)(r[o]===""||r[o]===null||r[o]===void 0)&&n[o]!==""&&n[o]!==null&&n[o]!==void 0&&(r[o]=n[o])}for(const n in e){const a=e[n];a.isHighFasting=Qt(a.fasting_blood_sugar),a.isHighPostprandial=mt(a.postprandial_blood_sugar),a.isHighOther=mt(a.other_blood_sugar),a.isHighBp=Zt(a),a.bpText=ea(a)}return e});t.computed(()=>{const e={};for(const n of Ne.value){const a=String(n.record_date||"");!a||e[a]||(e[a]=n)}return e}),t.computed(()=>{const e={};for(const n of Me.value){const a=String(n.record_date||"");if(!a||e[a])continue;const r={...n};r.intensityText=ta[Number(n.intensity)]||"",e[a]=r}return e}),t.computed(()=>{const e={};for(const n of Fe.value){const a=String(n.note_date||"");!a||e[a]||(e[a]=n)}return e});const aa=["周日","周一","周二","周三","周四","周五","周六"];function na(e){return aa[Oe(e).getDay()]||""}const Pe=t.computed(()=>Q(new Date));t.computed(()=>{const e=[];for(const n of We.value){const a=F.value[n];if(!a||!(v(a.fasting_blood_sugar)!==null||v(a.postprandial_blood_sugar)!==null||v(a.other_blood_sugar)!==null))continue;const[l,o,c]=n.split("-");e.push({date:n,dateLabel:`${o}-${c}`,weekday:na(n),isToday:n===Pe.value,blood:a})}return e});const He=t.computed(()=>$.value.some(e=>{const n=F.value[e];return n&&(v(n.fasting_blood_sugar)!==null||v(n.postprandial_blood_sugar)!==null)})),bt=t.computed(()=>$.value.filter(e=>{const n=F.value[e];return n&&(v(n.fasting_blood_sugar)!==null||v(n.postprandial_blood_sugar)!==null)}).length),$e=t.computed(()=>$.value.filter(e=>{const n=F.value[e];return n&&(n.isHighFasting||n.isHighPostprandial)}).length),ra=t.computed(()=>bt.value-$e.value);function Ye(e,n,a=1){if(e==null||n==null)return null;const r=Number(e)-Number(n);if(!Number.isFinite(r))return null;const l=Math.abs(r),o=l<.01?"flat":r>0?"up":"down",h=o==="flat"?"持平":`${o==="up"?"+":o==="down"?"-":""}${l.toFixed(a)}`;return{dir:o,delta:l,deltaText:h,prev:n}}function Ve(e,n){const a=$.value,r=a.indexOf(n);if(r<=0)return null;for(let l=r-1;l>=0;l--){const o=F.value[a[l]];if(!o)continue;const c=v(o[e]);if(c!==null)return{date:a[l],value:c}}return null}const Xe=t.computed(()=>{const e=[...$.value].reverse(),n={value:"—",date:"暂无记录",isHigh:!1,trend:null},a={fasting:{...n},postprandial:{...n},other:{...n}};for(const r of e){const l=F.value[r];if(l){if(a.fasting.value==="—"&&v(l.fasting_blood_sugar)!==null){const o=v(l.fasting_blood_sugar),c=Ve("fasting_blood_sugar",r);a.fasting={value:String(l.fasting_blood_sugar),date:r.slice(5),isHigh:l.isHighFasting,trend:c?Ye(o,c.value):null}}if(a.postprandial.value==="—"&&v(l.postprandial_blood_sugar)!==null){const o=v(l.postprandial_blood_sugar),c=Ve("postprandial_blood_sugar",r);a.postprandial={value:String(l.postprandial_blood_sugar),date:r.slice(5),isHigh:l.isHighPostprandial,trend:c?Ye(o,c.value):null}}if(a.other.value==="—"&&v(l.other_blood_sugar)!==null){const o=v(l.other_blood_sugar),c=Ve("other_blood_sugar",r);a.other={value:String(l.other_blood_sugar),date:r.slice(5),isHigh:l.isHighOther,trend:c?Ye(o,c.value):null}}if(a.fasting.value!=="—"&&a.postprandial.value!=="—"&&a.other.value!=="—")break}}return a});function _t(e,n,a){if(!e)return{label:a,value:"—",isHigh:!1};if(v(e[n])===null)return{label:a,value:"—",isHigh:!1};const l=n==="fasting_blood_sugar"?e.isHighFasting:n==="postprandial_blood_sugar"?e.isHighPostprandial:e.isHighOther;return{label:a,value:String(e[n]),isHigh:!!l}}const yt=t.computed(()=>F.value[Pe.value]||null),Z=t.computed(()=>_t(yt.value,"fasting_blood_sugar","空腹")),ee=t.computed(()=>_t(yt.value,"postprandial_blood_sugar","餐后"));let te=null;function se(){return!!String(t.index.getStorageSync("token")||"").trim()}function xt(){t.index.removeStorageSync("token"),te=null}function la(){return new Promise((e,n)=>{t.index.login({provider:"weixin",success:a=>{a&&a.code?e(a.code):n(new Error("微信登录未返回 code"))},fail:n})})}async function oa(e){const n=await S.apiUrl({url:"/api/login/mnpLogin",method:"POST",data:{code:e}},!1);if(n&&n.code===1&&n.data&&n.data.token)return t.index.setStorageSync("token",n.data.token),t.index.setStorageSync("userData",n.data),n.data;throw xt(),new Error(U(n==null?void 0:n.msg,"登录失败"))}async function St(){const e=await la();return await oa(e),se()}async function ia(){if(!se())return St();try{const e=await S.apiUrl({url:"/api/user/info",method:"POST"},!1);if(e&&e.code===1&&e.data)return t.index.setStorageSync("userData",e.data),!0}catch{}xt();try{return await St()}catch{return!1}}async function kt(){return te||(te=ia().then(e=>(e||(te=null),!!e)).catch(()=>(te=null,!1)),te)}async function wt(){if(!se())return[];gt.value=!0;try{const e=await S.apiUrl({url:"/api/tcm/getCardList",method:"GET",data:{}},!1);return e&&e.code===1&&Array.isArray(e.data)?(re.value=e.data,e.data):(re.value=[],[])}catch{return re.value=[],[]}finally{gt.value=!1}}async function Ke(e){!e||!se()||(p.value=Number(e.id)||0,O.value=Number(e.patient_id)||0,I.value=e.patient_name||"",P.value=Number(e.age)||0,K.value=Number(e.gender)||0)}function Tt(){try{const e=t.index.getStorageSync("userData")||{};J.value=String(e.mobile||e.phone||"").trim()}catch{J.value=""}return J.value}function ua(){try{const e=t.index.getStorageSync("userData")||{},n=Number(e.sex);M.value=n===1||n===2?n:0}catch{M.value=0}}function Je(){ua(),ne.value=!0}async function sa(){try{const e=await S.apiUrl({url:"/api/user/info",method:"POST"},!1);e&&e.code===1&&e.data&&(t.index.setStorageSync("userData",e.data),J.value=String(e.data.mobile||e.data.phone||"").trim())}catch{}return J.value}async function Qe(e){if(p.value)return!0;const n={},a=e??M.value;(a===1||a===2)&&(n.sex=a);const r=await S.apiUrl({url:"/api/tcm/dailyEnsurePhoneContext",method:"POST",data:n},!1);return r&&r.code===1&&r.data&&r.data.diagnosis_id?(await Ke({id:r.data.diagnosis_id,patient_id:r.data.patient_id,patient_name:r.data.patient_name||"",age:r.data.age||0,gender:r.data.gender||0}),r.data.created&&await wt(),!0):r&&r.data&&r.data.need_mobile?"need_mobile":(b(U(r==null?void 0:r.msg,"无法开始录入")),!1)}async function Dt(){if(p.value)return!0;if(Tt(),!J.value)return Je(),!1;const e=await Qe();return e==="need_mobile"?(Je(),!1):!!e}function At(){be.value||(ne.value=!1)}async function ca(e){const n=(e==null?void 0:e.detail)||{};if(n.errMsg&&!String(n.errMsg).includes("ok")){b("需要授权手机号后才能录入血糖");return}const a=n.code;if(!a){b("获取手机号失败,请重试");return}if(M.value!==1&&M.value!==2){b("请先选择性别");return}be.value=!0;try{const r=await S.apiUrl({url:"/api/user/getMobileByMnp",method:"POST",data:{code:a,sex:M.value}},!1);if(!r||r.code!==1){b(U(r==null?void 0:r.msg,"绑定手机号失败"));return}await sa(),ne.value=!1;const l=await Qe(M.value);l===!0?await Ct(!0):l==="need_mobile"&&Je()}catch{b("网络异常,请稍后再试")}finally{be.value=!1}}async function fa(e){!e||Number(e.id)===Number(p.value)||(Ae.value=[],Ne.value=[],Me.value=[],Fe.value=[],w.value=null,await Ke(e),ce())}async function ce(){if(!se()||!p.value)return;De.value=!0;const{start:e,end:n}=ht.value;try{const[a,r]=await Promise.all([S.apiUrl({url:"/api/tcm/dailyTrackingWindow",method:"GET",data:{diagnosis_id:p.value,patient_id:O.value||0,start_date:e,end_date:n}},!1),S.apiUrl({url:"/api/tcm/dailyTrackingNotes",method:"GET",data:{diagnosis_id:p.value,patient_id:O.value||0}},!1)]);if(a&&a.code===1){const l=a.data||{};Ae.value=Array.isArray(l.blood_records)?l.blood_records:[],Ne.value=Array.isArray(l.diet_records)?l.diet_records:[],Me.value=Array.isArray(l.exercise_records)?l.exercise_records:[],l.diagnosis&&(I.value||(I.value=l.diagnosis.patient_name||""),P.value||(P.value=Number(l.diagnosis.age)||0),K.value||(K.value=Number(l.diagnosis.gender)||0),O.value||(O.value=Number(l.diagnosis.patient_id)||0))}else Ae.value=[],Ne.value=[],Me.value=[],a!=null&&a.msg&&b(a.msg);if(r&&r.code===1){const l=Array.isArray(r.data)?r.data:[];Fe.value=l.filter(o=>We.value.includes(String((o==null?void 0:o.note_date)||"")))}else Fe.value=[];await Xt(!1)}catch{t.index.showToast({title:"加载失败,请稍后再试",icon:"none"})}finally{if(De.value=!1,await t.nextTick$1(),Se(),wa.value&&!B.value){const a=++$t;setTimeout(()=>{a===$t&&!B.value&&zt()},350)}}}function da(e){le.value!==e&&(le.value=e,ce())}async function va(){!p.value&&(!await Dt()||!p.value)||t.index.navigateTo({url:"/tongji/pages/more"})}function ga(e=new Date().getHours()){const n=Number(e)||0;return n<5?{text:"夜深了",icon:"moon"}:n<11?{text:"早上好",icon:"sun"}:n<13?{text:"中午好",icon:"sun"}:n<18?{text:"下午好",icon:"sun"}:n<22?{text:"晚上好",icon:"sunset"}:{text:"夜深了",icon:"moon"}}const pa=t.computed(()=>ga());function Ze(e){const n=F.value[e];return n?v(n.fasting_blood_sugar)!==null||v(n.postprandial_blood_sugar)!==null||v(n.other_blood_sugar)!==null:!1}function ha(e){const n=F.value[e];if(!n)return 0;const r=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar"].filter(l=>v(n[l])!==null).length;return r===0?0:r===1?1:r===2?2:3}const Nt=t.computed(()=>Ze(Pe.value));t.computed(()=>{const e=new Date;let n=0,a=!1;for(let r=0;r<90;r++){const l=new Date(e);l.setDate(e.getDate()-r);const o=Q(l);if(Ze(o))n++;else{if(r===0){a=!0;continue}break}}return{days:n,startedFromYesterday:a}});const Mt=t.computed(()=>{const e=[],n=new Date,a=["日","一","二","三","四","五","六"];for(let r=6;r>=0;r--){const l=new Date(n);l.setDate(n.getDate()-r);const o=Q(l);e.push({date:o,label:a[l.getDay()],isToday:r===0,hasRecord:Ze(o)})}return e});t.computed(()=>Mt.value.filter(e=>e.hasRecord).length);function ma(e){const n=F.value[e];return!!(n&&v(n.fasting_blood_sugar)!==null)}function ba(e){const n=F.value[e];return!!(n&&v(n.postprandial_blood_sugar)!==null)}function _a(e){return ma(e)&&ba(e)}t.computed(()=>Mt.value.filter(e=>_a(e.date)).length);const et=t.computed(()=>{const e=$.value;if(!e||!e.length)return[];const n=[...e].sort(),a=new Date(n[0]),r=new Date(n[n.length-1]),l=(a.getDay()+6)%7,o=(r.getDay()+6)%7,c=new Date(a);c.setDate(a.getDate()-l);const h=new Date(r);h.setDate(r.getDate()+(6-o));const x=Math.round((h-c)/864e5)+1,m=[];let _=new Date(c);for(let ae=0;ae<Math.ceil(x/7);ae++){const ve=[];for(let q=0;q<7;q++){const Y=Q(_),ge=n.includes(Y);ve.push({date:Y,day:_.getDate(),inRange:ge,isToday:Y===Pe.value,level:ge?ha(Y):-1}),_.setDate(_.getDate()+1)}m.push(ve)}return m});t.computed(()=>{let e=0;for(const n of et.value)for(const a of n)a.inRange&&a.level>0&&e++;return e}),t.computed(()=>{let e=0;for(const n of et.value)for(const a of n)a.inRange&&e++;return e}),t.computed(()=>{const e=et.value;if(!e.length)return"";const n=new Map;for(const c of e)for(const h of c){if(!h.inRange)continue;const[x,m]=h.date.split("-"),_=`${x}-${m}`;n.set(_,(n.get(_)||0)+1)}if(!n.size){const c=e[0][0].date.split("-");return`${Number(c[0])}年${Number(c[1])}月`}let a="",r=-1;for(const[c,h]of n)h>r&&(a=c,r=h);const[l,o]=a.split("-");return`${Number(l)}年${Number(o)}月`});const ya=t.computed(()=>{const e=new Date,n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),r=["周日","周一","周二","周三","周四","周五","周六"];return`${e.getFullYear()}-${n}-${a} ${r[e.getDay()]}`}),Ft=()=>({visible:!1,loading:!1,submitting:!1,id:0,fasting_blood_sugar:"",postprandial_blood_sugar:"",other_blood_sugar:"",remark:""}),i=t.ref(Ft());function xa(){oe=null,_e=null,xe()}function Re(e,n){var r;const a=((r=n==null?void 0:n.detail)==null?void 0:r.value)??"";i.value[e]=a}async function Ct(e=!1){if(!t.index.getStorageSync("token")){b("请先登录后再录入");return}if(!(!e&&!await Dt())){if(!p.value){b("请先授权手机号");return}xa(),i.value={...Ft(),visible:!0,loading:!0};try{const a=await S.apiUrl({url:"/api/tcm/dailyTodayBloodRecord",method:"GET",data:{diagnosis_id:p.value}},!1);if(a&&a.code===1&&a.data&&a.data.record){const r=a.data.record;i.value.id=Number(r.id)||0,i.value.fasting_blood_sugar=tt(r.fasting_blood_sugar),i.value.postprandial_blood_sugar=tt(r.postprandial_blood_sugar),i.value.other_blood_sugar=tt(r.other_blood_sugar),i.value.remark=String(r.remark||"")}}catch{}finally{i.value.loading=!1}}}function tt(e){return e==null||e===""||e===0||e==="0"||typeof e=="object"?"":String(e)}function Pt(){i.value.submitting||(i.value.visible=!1,t.nextTick$1(()=>Se()))}const B=t.computed(()=>i.value.visible||ne.value);async function Sa(){if(i.value.submitting||i.value.loading)return;const e=i.value;if(!([e.fasting_blood_sugar,e.postprandial_blood_sugar,e.other_blood_sugar].some(a=>a!==""&&a!==null&&Number(a)>0)||!!(e.remark&&e.remark.trim()))){t.index.showToast({title:"请至少填写一项数据",icon:"none"});return}i.value.submitting=!0;try{const a=await S.apiUrl({url:"/api/tcm/dailySaveBloodRecord",method:"POST",data:{diagnosis_id:p.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);a&&a.code===1?(b(a.msg||"已保存",{icon:"success"}),i.value.visible=!1,await ce()):b(a&&a.msg||"保存失败")}catch{t.index.showToast({title:"网络异常,请稍后再试",icon:"none"})}finally{i.value.submitting=!1}}function ka(){!i.value.id||i.value.submitting||t.index.showModal({title:"删除确认",content:"确定删除今天已录入的数据吗?删除后无法恢复。",confirmColor:"#dc2626",success:async e=>{if(e.confirm){i.value.submitting=!0;try{const n=await S.apiUrl({url:"/api/tcm/dailyDeleteBloodRecord",method:"POST",data:{diagnosis_id:p.value,id:i.value.id}},!1);n&&n.code===1?(t.index.showToast({title:"已删除",icon:"success"}),i.value.visible=!1,ce()):b(n&&n.msg||"删除失败")}catch{t.index.showToast({title:"网络异常,请稍后再试",icon:"none"})}finally{i.value.submitting=!1}}}})}const Ht=t.ref(!0),wa=t.ref(!1),C=t.ref(!1);let D=null,$t=0;function Rt(){if(D){try{D.stop()}catch{}try{D.destroy&&D.destroy()}catch{}D=null}}function xe(){Rt(),C.value=!1}function Ta(e){return e==null?"":typeof e=="string"?e.replace(/\s+/g," ").trim():Array.isArray(e)?e.map(n=>typeof n=="string"?n:n&&typeof n=="object"?n.title||n.label||n.desc||n.msg||n.message||"":U(n,"")).filter(Boolean).join(","):typeof e=="object"?e.title||e.label||e.desc||e.msg||e.message||"":U(e,"")}function Da(e){if(!Ht.value)return;const n=Ta(e);if(n){xe();try{const a=requirePlugin("WechatSI");C.value=!0,a.textToSpeech({lang:"zh_CN",tts:!0,content:n,success:r=>{if(!r||!r.filename){C.value=!1;return}Rt(),D=t.index.createInnerAudioContext(),D.src=r.filename,D.obeyMuteSwitch=!1,D.onPlay(()=>{C.value=!0}),D.onEnded(()=>{C.value=!1}),D.onError(()=>{C.value=!1}),D.onStop(()=>{C.value=!1}),D.play()},fail:r=>{C.value=!1,t.index.__f__("warn","at tongji/pages/index.vue:2103","WechatSI textToSpeech failed",r),t.index.showToast({title:"语音不可用,请检查网络/插件",icon:"none",duration:2e3})}});return}catch(a){t.index.__f__("warn","at tongji/pages/index.vue:2109","WechatSI plugin not available",a)}b(n,{duration:3200})}}function fe(e){return e==null||e===""?"":String(e).replace(/(\d+)\.(\d+)/g,(n,a,r)=>`${a}点${r}`)}function Aa(){const e=Xe.value.fasting,n=Xe.value.postprandial,a=Xe.value.other,r=`${I.value||"您"}的最新血糖情况:`,l=[];if(e&&e.value!=="—"){let o=`空腹血糖 ${fe(e.value)} 毫摩每升`;e.isHigh?o+=",偏高,请遵医嘱。":o+="。",e.trend&&e.trend.dir!=="flat"&&(o+=`比上次${e.trend.dir==="up"?"升高":"下降"} ${fe(e.trend.delta.toFixed(1))}。`),l.push(o)}if(n&&n.value!=="—"){let o=`餐后血糖 ${fe(n.value)} 毫摩每升`;n.isHigh?o+=",偏高,请注意饮食。":o+="。",n.trend&&n.trend.dir!=="flat"&&(o+=`比上次${n.trend.dir==="up"?"升高":"下降"} ${fe(n.trend.delta.toFixed(1))}。`),l.push(o)}if(a&&a.value!=="—"){let o=`其他时段血糖 ${fe(a.value)} 毫摩每升`;a.isHigh?o+=",偏高,请遵医嘱。":o+="。",a.trend&&a.trend.dir!=="flat"&&(o+=`比上次${a.trend.dir==="up"?"升高":"下降"} ${fe(a.trend.delta.toFixed(1))}。`),l.push(o)}return l.length?r+l.join(" "):`${I.value||"您"}近期暂无血糖记录。`}function zt(){const e=Aa();e&&Da(e)}function Na(){return new Promise(e=>{if(oe){e();return}t.index.createSelectorQuery().in(S).select("#bloodWaveChart").fields({node:!0,size:!0}).exec(a=>{const r=a&&a[0];if(!r||!r.node){e();return}_e=r.node,oe=_e.getContext("2d");try{ue=t.index.getSystemInfoSync().pixelRatio||1}catch{ue=1}ie=r.width,Ce=r.height,_e.width=ie*ue,_e.height=Ce*ue,oe.scale(ue,ue),e()})})}let at=!1;function Se(){at||(at=!0,setTimeout(async()=>{at=!1,await Na(),Fa()},60))}function It(e){return $.value.map(n=>{const a=F.value[n];return a?v(a[e]):null})}function Ma(...e){const n=e.flat().filter(o=>o!==null);if(!n.length)return{yMin:4,yMax:12};let a=Math.min(...n),r=Math.max(...n);const l=r-a;return l<2?(a=Math.max(0,a-1),r=r+1):(a=Math.max(0,a-l*.2),r=r+l*.2),a=Math.max(2,Math.floor(a)),r=Math.min(28,Math.ceil(r)),r-a<4&&(r=a+4),{yMin:a,yMax:r}}function Fa(){if(!oe||!ie||!Ce)return;const e=oe,n=ie,a=Ce;e.clearRect(0,0,n,a);const r={left:40,right:18,top:26,bottom:36},l=n-r.left-r.right,o=a-r.top-r.bottom,c=It("fasting_blood_sugar"),h=It("postprandial_blood_sugar"),x=$.value.length,m=qe(P.value),_=[{key:"fasting",data:c,color:"#204E2B",fillTop:"rgba(32,78,43,0.18)",fillBottom:"rgba(32,78,43,0)",label:"空腹",highThreshold:m?m.fasting:null},{key:"postprandial",data:h,color:"#D97706",fillTop:"rgba(217,119,6,0.18)",fillBottom:"rgba(217,119,6,0)",label:"餐后",highThreshold:m?m.postprandial:null}],ae=_.filter(u=>W.value[u.key]),ve=ae.length?ae.map(u=>u.data):[c,h],{yMin:q,yMax:Y}=Ma(...ve),ge=u=>r.top+o*(1-(u-q)/(Y-q));if(e.fillStyle="#fbfcfd",e.fillRect(r.left,r.top,l,o),m){const u=ge(m.fasting),y=Math.max(r.top,Math.min(u,r.top+o));if(y>r.top){const R=e.createLinearGradient(0,r.top,0,y);R.addColorStop(0,"rgba(254, 226, 226, 0.55)"),R.addColorStop(1,"rgba(254, 226, 226, 0.15)"),e.fillStyle=R,e.fillRect(r.left,r.top,l,y-r.top)}}e.strokeStyle="#eef2f5",e.lineWidth=1;const ke=4;for(let u=0;u<=ke;u++){const y=r.top+o*u/ke;e.beginPath(),e.moveTo(r.left,y),e.lineTo(r.left+l,y),e.stroke()}e.font="bold 12px sans-serif",e.fillStyle="#64748b",e.textAlign="right",e.textBaseline="middle";for(let u=0;u<=ke;u++){const y=r.top+o*u/ke,R=Y-(Y-q)*u/ke;e.fillText(R.toFixed(1),r.left-8,y)}if(e.font="bold 12px sans-serif",e.fillStyle="#475569",e.textAlign="center",e.textBaseline="top",x>0){const u=x>20?5:6,y=Math.max(1,Math.ceil(x/u));$.value.forEach((R,z)=>{if(z!==0&&z!==x-1&&z%y!==0)return;const we=x===1?r.left+l/2:r.left+l*z/(x-1);e.fillText(R.slice(5),we,r.top+o+8)})}if(m){const u=ge(m.fasting);if(u>=r.top&&u<=r.top+o){e.strokeStyle="#fda4af",e.lineWidth=1;try{e.setLineDash([6,5])}catch{}e.beginPath(),e.moveTo(r.left,u),e.lineTo(r.left+l,u),e.stroke();try{e.setLineDash([])}catch{}e.font="bold 11px sans-serif",e.fillStyle="#dc2626",e.textAlign="left",e.textBaseline="middle",e.fillText(`空腹阈 ${m.fasting}`,r.left+6,u-9)}}const Ia=u=>x===1?r.left+l/2:r.left+l*u/(x-1),rt={fasting:[],postprandial:[]},Ba=x<=10;_.forEach(u=>{const y=u.data.map((s,G)=>({x:Ia(G),y:s===null?null:ge(s),value:s}));if(rt[u.key]=y,!W.value[u.key])return;const R=[];let z=[];y.forEach(s=>{s.y!==null?z.push(s):z.length&&(R.push(z),z=[])}),z.length&&R.push(z),R.forEach(s=>{if(s.length===1){e.fillStyle=u.color,e.beginPath(),e.arc(s[0].x,s[0].y,4,0,Math.PI*2),e.fill();return}const G=()=>{e.beginPath(),e.moveTo(s[0].x,s[0].y);for(let A=0;A<s.length-1;A++){const Le=s[A-1]||s[A],he=s[A],N=s[A+1],V=s[A+2]||s[A+1],X=he.x+(N.x-Le.x)/6,je=he.y+(N.y-Le.y)/6,Ge=N.x-(V.x-he.x)/6,Ea=N.y-(V.y-he.y)/6;e.bezierCurveTo(X,je,Ge,Ea,N.x,N.y)}};G(),e.lineTo(s[s.length-1].x,r.top+o),e.lineTo(s[0].x,r.top+o),e.closePath();const pe=e.createLinearGradient(0,r.top,0,r.top+o);pe.addColorStop(0,u.fillTop),pe.addColorStop(1,u.fillBottom),e.fillStyle=pe,e.fill(),G(),e.strokeStyle=u.color,e.lineWidth=2.4,e.lineCap="round",e.lineJoin="round",e.stroke(),Ba&&s.forEach(A=>{e.beginPath(),e.arc(A.x,A.y,3,0,Math.PI*2),e.fillStyle="#ffffff",e.fill(),e.strokeStyle=u.color,e.lineWidth=1.8,e.stroke()})});let we=-1,Wt=-1/0;if(y.forEach((s,G)=>{s.value!=null&&s.value>Wt&&(Wt=s.value,we=G)}),we>=0){const s=y[we],G=u.highThreshold!=null&&s.value>=u.highThreshold;e.beginPath(),e.arc(s.x,s.y,5,0,Math.PI*2),e.fillStyle=G?"#dc2626":u.color,e.fill(),e.strokeStyle="#ffffff",e.lineWidth=2.5,e.stroke();const pe=String(s.value);e.font="bold 12px sans-serif";const A=e.measureText(pe).width,Le=8,he=5,N=A+Le*2,V=14+he*2;let X=s.x,je=!0;s.y-12-V-4<r.top&&(je=!1);let Ge=je?s.y-12-V/2:s.y+12+V/2;X-N/2<r.left+2&&(X=r.left+N/2+2),X+N/2>r.left+l-2&&(X=r.left+l-N/2-2),e.fillStyle=G?"#dc2626":u.color,e.fillRect(X-N/2,Ge-V/2,N,V),e.fillStyle="#ffffff",e.textAlign="center",e.textBaseline="middle",e.fillText(pe,X,Ge)}}),ye={padding:r,cw:l,ch:o,n:x,fasting:rt.fasting,postprandial:rt.postprandial}}function Bt(e){e!=="fasting"&&e!=="postprandial"||(W.value[e]=!W.value[e],w.value=null,Se())}function Et(e){if(!ye||!ie||!$.value.length)return;let n=0,a=0;e&&e.touches&&e.touches[0]&&(n=e.touches[0].x??e.touches[0].clientX??0,a=e.touches[0].y??e.touches[0].clientY??0);const{padding:r,cw:l,n:o}=ye;if(n<r.left||n>r.left+l)return;const c=o<=1?0:(n-r.left)/l;let h=Math.round(c*(o-1));h<0&&(h=0),h>o-1&&(h=o-1);const x=$.value[h],m=W.value.fasting?ye.fasting[h]:null,_=W.value.postprandial?ye.postprandial[h]:null,ae=(m==null?void 0:m.x)??(_==null?void 0:_.x)??r.left+l*(h/Math.max(1,o-1)),ve=Math.max(8,Math.min(ie-130,ae-60)),q=Math.max(4,a-70);w.value={date:x.slice(5),fasting:(m==null?void 0:m.value)??null,postprandial:(_==null?void 0:_.value)??null,left:ve,top:q},Ue&&clearTimeout(Ue),Ue=setTimeout(()=>{w.value=null},2500)}t.watch(le,()=>{Se()});function Ca(){try{const e=t.index.getStorageSync("userData");e&&e.diagnosis&&(O.value||(O.value=Number(e.diagnosis.patient_id)||0),p.value||(p.value=Number(e.diagnosis.id)||0),I.value||(I.value=e.diagnosis.patient_name||""),P.value||(P.value=Number(e.diagnosis.age)||0),K.value||(K.value=Number(e.diagnosis.gender)||0))}catch{}}async function Pa(e){e=e||{};const n=String(e.invite_code||"").trim();if(e.from==="share"&&n){j.value=!1,await Ot(n);return}E.value=!1,j.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 kt()||!se()){j.value=!1,b("登录失败,请稍后重试");return}Ca();const l=await wt();if(Array.isArray(l)&&l.length>0){let o=null;a&&(o=l.find(c=>Number(c.id)===Number(a))),o||(o=l[0]),await Ke(o)}else p.value=0,O.value=0,I.value="",P.value=0,K.value=0,Tt(),J.value&&await Qe();j.value=!1,p.value&&await ce()}t.onLoad(e=>{Pa(e)}),t.onShow(()=>{j.value||t.nextTick$1(()=>Se())}),t.onPullDownRefresh(async()=>{if(E.value){const e=f.value.invite_code;e&&await Ot(e)}else await kt()&&await ce();t.index.stopPullDownRefresh()}),t.onHide(()=>{xe()}),t.onUnload(()=>{xe()});const E=t.ref(!1),ze=t.ref(!1),Ie=t.ref(""),f=t.ref({}),Be=t.ref(!1),nt=t.ref("家人"),Ee=t.ref(!1),Ha=["家人","亲友","老伴","子女"];function Lt(){try{t.index.vibrateShort({type:"light"})}catch{}}function jt(){try{let e=t.index.getStorageSync(qt);return e||(e=`v_${Date.now()}_${Math.random().toString(36).slice(2,12)}`,t.index.setStorageSync(qt,e)),String(e).slice(0,64)}catch{return`v_${Date.now()}`}}const $a=t.computed(()=>Number(f.value.tree_level)||0),de=t.computed(()=>{const e=f.value.daily_records;return Array.isArray(e)?e:[]});function Gt(e){return e==null||e===""?"—":String(e)}const Ut=["Ta 正在努力控糖,您的鼓励很重要。","好习惯比完美数值更珍贵,一起加油。","每天记一笔,就是在照顾未来的自己。","点赞一下,让 Ta 知道家人在身边。"];function Ra(){const e=Ut[Math.floor(Math.random()*Ut.length)];b(e,{duration:2800}),Lt()}async function Ot(e){E.value=!0,ze.value=!0,Ie.value="",f.value={},Ee.value=!1;try{const n=await S.apiUrl({url:"/api/tcm/dailySharePreview",method:"GET",data:{invite_code:e,viewer_key:jt()}},!1);n&&n.code===1&&n.data?f.value=n.data:Ie.value=U(n&&n.msg,"邀请码无效或已过期")}catch{Ie.value="加载失败,请稍后再试"}finally{ze.value=!1}}async function za(){const e=f.value.invite_code;if(!(!e||Be.value)){if(f.value.liked_by_me){b("您今天已经点过赞啦");return}Be.value=!0;try{const n=await S.apiUrl({url:"/api/tcm/dailyFamilyLike",method:"POST",data:{invite_code:e,viewer_key:jt(),nickname:nt.value}},!1);if(n&&n.code===1&&n.data){const a=n.data,r=!!a.already_liked;if(f.value={...f.value,like_count:Number(a.like_count)||0,liked_by_me:!0},r){b(a.praise_message||"您今天已经点过赞啦");return}Ee.value=!0,setTimeout(()=>{Ee.value=!1},900),Lt(),triggerCelebrate("鼓励已送达",a.praise_message||"谢谢您的点赞")}else b(n&&n.msg||"点赞失败")}catch{b("点赞失败,请稍后再试")}finally{Be.value=!1}}}return(e,n)=>t.e({a:E.value},E.value?t.e({b:t.p({name:"view",size:"md",color:"#FFFFFF"}),c:t.t(f.value.viewer_notice||"近7日稳糖记录"),d:t.t(f.value.expires_hint||"邀请码仅今日有效"),e:f.value.patient_label},f.value.patient_label?{f:t.p({name:"users",size:"sm",color:"#A5F3FC"}),g:t.t(f.value.patient_label)}:{},{h:ze.value},ze.value?{}:f.value.invite_code?t.e({j:t.p({name:"ticket",size:"md",color:"#204E2B"}),k:t.t(f.value.invite_code),l:t.p({level:$a.value,size:"md"}),m:t.o(Ra,"87"),n:t.t(f.value.tree_title||"控糖树"),o:t.t(f.value.tree_desc||""),p:t.t(f.value.week_label||""),q:t.p({name:"calendar",size:"sm",color:"#204E2B"}),r:t.t(f.value.record_days),s:t.p({name:"check-circle",size:"sm",color:"#386641"}),t:t.t(f.value.complete_days),v:t.p({name:"flame",size:"sm",color:"#EA580C"}),w:t.t(f.value.streak_days),x:f.value.quote},f.value.quote?{y:t.t(f.value.quote)}:{},{z:t.p({name:"glucose",size:"md",color:"#386641"}),A:!de.value.length},de.value.length?{C:t.f(de.value,(a,r,l)=>t.e({a:a.has_record?1:"",b:r<de.value.length-1},r<de.value.length-1?{}:{},{c:t.t(a.date_label),d:t.t(a.weekday),e:a.has_record},a.has_record?t.e({f:t.t(Gt(a.fasting)),g:a.fasting_high?1:"",h:a.fasting!=null},a.fasting!=null?{}:{},{i:a.fasting_high},a.fasting_high?{j:"612eeee9-9-"+l,k:t.p({name:"alert-triangle",size:"sm",color:"#DC2626"})}:{},{l:t.t(Gt(a.postprandial)),m:a.postprandial_high?1:"",n:a.postprandial!=null},a.postprandial!=null?{}:{},{o:a.postprandial_high},a.postprandial_high?{p:"612eeee9-10-"+l,q:t.p({name:"alert-triangle",size:"sm",color:"#DC2626"})}:{},{r:a.bp_text},a.bp_text?t.e({s:t.t(a.bp_text),t:a.bp_high?1:"",v:a.bp_high},a.bp_high?{w:"612eeee9-11-"+l,x:t.p({name:"alert-triangle",size:"sm",color:"#DC2626"})}:{}):{}):{y:"612eeee9-12-"+l,z:t.p({name:"minus",size:"sm",color:"#94A3B8"})},{A:a.date,B:a.has_record?"":1,C:r===de.value.length-1?1:""}))}:{B:t.p({name:"minus",size:"lg",color:"#94A3B8"})},{D:t.p({name:"heart",size:"md",color:"#386641"}),E:t.t(f.value.like_count||0),F:t.f(Ha,(a,r,l)=>({a:t.t(a),b:a,c:nt.value===a?1:"",d:t.o(o=>nt.value=a,a)})),G:!f.value.liked_by_me},f.value.liked_by_me?{}:{H:t.p({name:"heart",size:"md",color:"#FFFFFF"})},{I:t.t(f.value.liked_by_me?"今日已点赞,谢谢您的鼓励":"送 Ta 一份鼓励"),J:f.value.liked_by_me?1:"",K:Be.value?1:"",L:Ee.value?1:"",M:t.o(za,"5e"),N:t.p({name:"activity",size:"sm",color:"#64748B"})}):{O:t.p({name:"alert-triangle",size:"xl",color:"#DC2626"}),P:t.t(Ie.value||"邀请码无效或已过期")},{i:f.value.invite_code}):{},{Q:j.value&&!E.value},j.value&&!E.value?{}:{},{R:!E.value&&!j.value},!E.value&&!j.value?t.e({S:t.t(pa.value.text),T:t.t(I.value||"您好"),U:t.t(Nt.value?"今日血糖已记录":"今日还没记血糖"),V:t.n(Nt.value?"is-done":"is-pending"),W:re.value.length>1},re.value.length>1?{X:t.f(re.value,(a,r,l)=>({a:t.t(a.patient_name||"就诊卡"),b:a.id,c:Number(a.id)===Number(p.value)?1:"",d:t.o(o=>fa(a),a.id)}))}:{},{Y:t.p({name:"plus",size:"lg",color:"#FFFFFF"}),Z:t.o(a=>Ct(),"0b"),aa:t.p({name:C.value?"pause":"volume",size:"md",color:"#204E2B"}),ab:t.t(C.value?"停止朗读":"朗读血糖"),ac:C.value?1:"",ad:Ht.value?"":1,ae:t.o(a=>C.value?xe():zt(),"0e"),af:p.value},p.value?t.e({ag:t.t(Jt.value),ah:W.value.fasting?"":1,ai:t.o(a=>Bt("fasting"),"91"),aj:W.value.postprandial?"":1,ak:t.o(a=>Bt("postprandial"),"df"),al:He.value&&$e.value>0},He.value&&$e.value>0?{am:t.t($e.value),an:t.t(ra.value),ao:t.t(bt.value)}:{},{ap:!B.value},B.value?{}:{aq:t.o(Et,"28"),ar:t.o(Et,"83")},{as:B.value},B.value?{}:{},{at:!He.value&&!De.value&&!B.value},!He.value&&!De.value&&!B.value?{}:{},{av:w.value&&!B.value},w.value&&!B.value?t.e({aw:t.t(w.value.date),ax:w.value.fasting!=null},w.value.fasting!=null?{ay:t.t(w.value.fasting)}:{},{az:w.value.postprandial!=null},w.value.postprandial!=null?{aA:t.t(w.value.postprandial)}:{},{aB:w.value.left+"px",aC:w.value.top+"px"}):{},{aD:t.f(pt,(a,r,l)=>({a:t.t(a.label),b:a.value,c:le.value===a.value?1:"",d:t.o(o=>da(a.value),a.value)}))}):{},{aE:t.t(Z.value.label),aF:t.t(Z.value.value),aG:Z.value.value!=="—"},Z.value.value!=="—"?{}:{},{aH:Z.value.isHigh},Z.value.isHigh?{}:{},{aI:Z.value.isHigh?1:"",aJ:t.t(ee.value.label),aK:t.t(ee.value.value),aL:ee.value.value!=="—"},ee.value.value!=="—"?{}:{},{aM:ee.value.isHigh},ee.value.isHigh?{}:{},{aN:ee.value.isHigh?1:"",aO:t.o(va,"ee"),aP:p.value},p.value?t.e({aQ:t.p({name:"sparkles",size:"md",color:"#ffffff"}),aR:t.unref(g)?1:"",aS:t.p({name:"refresh",size:"sm",color:"#ffffff"}),aT:t.t(t.unref(g)?"生成中":"换一换"),aU:t.unref(g)?1:"",aV:t.o((...a)=>t.unref(it)&&t.unref(it)(...a),"8d"),aW:t.unref(g)&&!t.unref(ot)&&!t.unref(me)&&!t.unref(lt)},t.unref(g)&&!t.unref(ot)&&!t.unref(me)&&!t.unref(lt)?{aX:t.f(3,(a,r,l)=>({a:"sk-"+a}))}:t.e({aY:t.unref(me)},t.unref(me)?{}:{},{aZ:t.p({name:"sun",size:"sm",color:"#ffffff"}),ba:t.t(t.unref(d).breakfast||(t.unref(g)?"…":"—")),bb:t.unref(g)&&t.unref(T)==="breakfast"},t.unref(g)&&t.unref(T)==="breakfast"?{}:{},{bc:t.unref(d).drinks||t.unref(g)&&t.unref(T)==="drinks"},t.unref(d).drinks||t.unref(g)&&t.unref(T)==="drinks"?t.e({bd:t.p({name:"droplet",size:"sm",color:"#ffffff"}),be:t.t(t.unref(d).drinks||"…"),bf:t.unref(g)&&t.unref(T)==="drinks"},t.unref(g)&&t.unref(T)==="drinks"?{}:{}):{},{bg:t.p({name:"sunset",size:"sm",color:"#ffffff"}),bh:t.t(t.unref(d).lunch||(t.unref(g)?"…":"—")),bi:t.unref(g)&&t.unref(T)==="lunch"},t.unref(g)&&t.unref(T)==="lunch"?{}:{},{bj:t.p({name:"moon",size:"sm",color:"#ffffff"}),bk:t.t(t.unref(d).dinner||(t.unref(g)?"…":"—")),bl:t.unref(g)&&t.unref(T)==="dinner"},t.unref(g)&&t.unref(T)==="dinner"?{}:{},{bm:t.unref(d).tips||t.unref(g)&&t.unref(T)==="tips"},t.unref(d).tips||t.unref(g)&&t.unref(T)==="tips"?t.e({bn:t.p({name:"info",size:"sm",color:"#386641"}),bo:t.t(t.unref(d).tips||"…"),bp:t.unref(g)&&t.unref(T)==="tips"},t.unref(g)&&t.unref(T)==="tips"?{}:{}):{},{bq:t.unref(d).avoid&&t.unref(d).avoid.length},t.unref(d).avoid&&t.unref(d).avoid.length?{br:t.p({name:"alert-triangle",size:"sm",color:"#b91c1c"}),bs:t.f(t.unref(d).avoid,(a,r,l)=>({a:t.t(a),b:"avoid-"+r}))}:{},{bt:!t.unref(g)},t.unref(g)?{}:{bv:t.o((...a)=>t.unref(st)&&t.unref(st)(...a),"df"),bw:t.o((...a)=>t.unref(ct)&&t.unref(ct)(...a),"1f")},{bx:t.unref(me)?1:""}),{by:k.value},k.value?t.e({bz:t.p({name:"activity",size:"sm",color:"#ffffff"}),bA:t.t(k.value.level_label),bB:t.n("lv-"+k.value.level),bC:k.value.headline},k.value.headline?{bD:t.t(k.value.headline)}:{},{bE:t.f(k.value.items,(a,r,l)=>({a:t.t(r+1),b:t.t(a),c:"ex-"+r})),bF:k.value.intensity},k.value.intensity?{bG:t.p({name:"flame",size:"sm",color:"#d97706"}),bH:t.t(k.value.intensity)}:{},{bI:k.value.note},k.value.note?{bJ:t.t(k.value.note)}:{},{bK:t.n("lv-"+k.value.level)}):{},{bL:t.unref(Vt),bM:t.o((...a)=>t.unref(ut)&&t.unref(ut)(...a),"95"),bN:t.o((...a)=>t.unref(Te)&&t.unref(Te)(...a),"4b"),bO:!t.unref(L)},t.unref(L)?{}:{bP:t.p({name:"sparkles",size:"sm",color:"#ffffff"})},{bQ:t.t(t.unref(L)?"…":"问 AI"),bR:t.unref(L)?1:"",bS:t.o((...a)=>t.unref(Te)&&t.unref(Te)(...a),"e7"),bT:t.unref(L)||t.unref(H).advice},t.unref(L)||t.unref(H).advice?t.e({bU:t.unref(H).level_label},t.unref(H).level_label?{bV:t.t(t.unref(H).level_label),bW:t.n("lv-"+(t.unref(H).level||"unknown"))}:{},{bX:t.t(t.unref(H).advice||(t.unref(L)?"正在想…":"")),bY:t.unref(L)},t.unref(L)?{}:{},{bZ:t.unref(H).portion},t.unref(H).portion?{ca:t.t(t.unref(H).portion)}:{},{cb:t.n("lv-"+(t.unref(H).level||"unknown"))}):{},{cc:dt.value},dt.value?{cd:t.p({name:"activity",size:"sm",color:"#386641"}),ce:t.f(ft.value,(a,r,l)=>t.e({a:t.t(a.label),b:a.record_days>0},a.record_days>0?{c:t.t(a.compliance),d:t.n(Kt(a.compliance)),e:t.t(a.high_days),f:a.high_days>0?1:"",g:t.t(vt(a.fasting_avg)),h:t.t(vt(a.postprandial_avg)),i:t.t(a.record_days)}:{j:"612eeee9-31-"+l,k:t.p({name:"minus",size:"sm",color:"#94A3B8"})},{l:"an-"+r}))}:{},{cf:t.unref(d).rules_summary||t.unref(d).disclaimer},t.unref(d).rules_summary||t.unref(d).disclaimer?t.e({cg:t.unref(d).rules_summary},t.unref(d).rules_summary?{ch:t.t(t.unref(d).rules_summary)}:{},{ci:t.unref(d).disclaimer},t.unref(d).disclaimer?{cj:t.t(t.unref(d).disclaimer)}:{}):{}):{},{ck:ne.value},ne.value?{cl:t.o(At,"fe"),cm:M.value===1?1:"",cn:t.o(a=>M.value=1,"2b"),co:M.value===2?1:"",cp:t.o(a=>M.value=2,"aa"),cq:be.value,cr:be.value||!M.value,cs:t.o(ca,"ef"),ct:t.o(()=>{},"f6"),cv:t.o(At,"8a")}:{},{cw:i.value.visible},i.value.visible?t.e({cx:t.t(i.value.id?"修改今日血糖":"录入今日血糖"),cy:t.t(ya.value),cz:t.t(I.value||"本人"),cA:t.o(Pt,"5d"),cB:i.value.loading},i.value.loading?{}:{cC:i.value.fasting_blood_sugar,cD:t.o(a=>Re("fasting_blood_sugar",a),"0e"),cE:i.value.postprandial_blood_sugar,cF:t.o(a=>Re("postprandial_blood_sugar",a),"7e"),cG:i.value.other_blood_sugar,cH:t.o(a=>Re("other_blood_sugar",a),"a1"),cI:i.value.remark,cJ:t.o(a=>Re("remark",a),"bd")},{cK:i.value.id},i.value.id?{cL:i.value.submitting?1:"",cM:t.o(ka,"d3")}:{},{cN:t.t(i.value.submitting?"提交中…":i.value.id?"保存修改":"提交录入"),cO:i.value.submitting||i.value.loading?1:"",cP:t.o(Sa,"ec"),cQ:t.o(()=>{},"c3"),cR:t.o(Pt,"b5")}):{}):{},{cS:E.value?1:""})}},Ua=t._export_sfc(Yt,[["__scopeId","data-v-612eeee9"]]);Yt.__runtimeHooks=2;wx.createPage(Ua);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/tongji/pages/index.js.map