Files
zyt/server/public/admin/assets/DailyMatrix-fJaMn06t.js
T
2026-10-15 12:00:09 +08:00

3 lines
33 KiB
JavaScript

import{I as Hl,H as Ml,i as Yl,N as Il,O as Ll,r as Wl,e as hl,W as Fl,P as Al,v as zl,B as Pl,G as ql,F as Ol,z as Kl,aa as Gl,h as jl,A as Ql,Y as Jl,K as Xl,L as Zl,Q as et}from"./element-plus-DDINy080.js";import{_ as lt}from"./picker-CjyOL5ux.js";import{w as al,s as tt}from"./@vue/runtime-dom-DDAG46FW.js";import{H as at}from"./vue-echarts-BNtg2q_G.js";import it from"./DiagnosisTodoList-CDVPxzWT.js";import{h as nt}from"./perm-BnhoH_X2.js";import{_ as ot,$ as st,a0 as ut,a1 as rt,a2 as dt,a3 as mt,a4 as vt,a5 as pt,a6 as ft}from"./tcm-GunznPcd.js";import{f as il,b as _t,c as gt,d as yt,e as bt}from"./blood-thresholds-QpDuElbH.js";import{j as h,_ as ct}from"./index-CucNzNKR.js";import{f as kt,w as xt,n as Me,b as Vt,d as wt,aP as Dt,ak as o,I as d,J as n,a,aN as i,O as m,G as x,H as y,F as $,ap as I,A as v}from"./@vue/runtime-core-C6bnekPw.js";import{n as k,y as Ct}from"./@vue/reactivity-DiY1c2vO.js";import{o as $t,Q as g}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-CbYn5zW9.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-Dyen3QYL.js";import"./index-BdAQ7-sl.js";import"./index.vue_vue_type_script_setup_true_lang-9cmfzJ44.js";import"./index-qDgvWZbM.js";import"./index-B5hK-bbc.js";import"./cos-js-sdk-v5-DSMN0LUT.js";import"./file-SIgfRLK3.js";import"./index.vue_vue_type_script_setup_true_lang-2wpGl-Qs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./usePaging-DofycyjW.js";import"./vuedraggable-5bKFmC7X.js";import"./vue-BVs68q8v.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./resize-detector-G6vbKCU7.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const Rt={class:"daily-matrix"},St={class:"daily-matrix__toolbar"},Tt={class:"daily-matrix__toolbar-left"},Et={key:0,class:"daily-matrix__toolbar-right"},Ut={key:0,class:"daily-matrix__legend"},Nt={key:1,class:"daily-matrix__toolbar-right"},Bt={key:0,class:"daily-matrix__legend"},Ht=["role","tabindex","onClick","onKeydown"],Mt={class:"daily-matrix__tracking-tooltip"},Yt={class:"daily-matrix__tracking-preview"},It={key:0,class:"daily-matrix__record-count"},Lt={key:1,class:"daily-matrix__cell-up"},Wt={key:0,class:"daily-matrix__record-count"},ht={key:1},Ft={class:"daily-matrix__chart"},At={key:0,class:"daily-matrix__todo"},zt={class:"daily-matrix__detail-section"},Pt={class:"daily-matrix__detail-heading"},qt={class:"daily-matrix__detail-heading"},Ot={class:"daily-matrix__detail-tags"},Kt={key:3,class:"daily-matrix__cell-patient"},Gt={key:0,class:"daily-matrix__time-evidence"},jt={class:"daily-matrix__detail-fields"},Qt={class:"daily-matrix__detail-section"},Jt={class:"daily-matrix__detail-heading"},Xt={class:"daily-matrix__detail-heading"},Zt={class:"daily-matrix__detail-fields"},ea={key:0,class:"daily-matrix__detail-images"},la={class:"daily-matrix__detail-section"},ta={class:"daily-matrix__detail-heading"},aa={class:"daily-matrix__detail-heading"},ia={class:"daily-matrix__detail-fields"},na={key:0,class:"daily-matrix__detail-images"},oa={class:"daily-matrix__time-evidence"},sa={key:0,class:"ml-2 text-info"},ua={class:"daily-matrix__tracking-existing"},ra=120,da=kt({__name:"DailyMatrix",props:{diagnosisId:{},patientId:{},age:{default:void 0},readOnly:{type:Boolean,default:!1},patientName:{default:""}},setup(nl,{expose:ol}){const sl=["tcm.diagnosis/dailyRecord"],L=nl,C=v(()=>Number(L.diagnosisId||0)),oe=v(()=>Number(L.patientId||0)),Ye=v(()=>!!L.readOnly),ul=v(()=>L.patientName||""),Ie=v(()=>nt(sl)),D=v(()=>Ie.value&&!Ye.value),rl=v(()=>Ie.value),se=k(!1),F=k("7"),j=k(null),z=k([]),Q=k([]),J=k([]),X=k([]),P=k(!1),q=k(!1),O=k(!1),K=k(!1),ue=k(!1),T=k(""),Le=k(""),re=k(!1),de=k(!1),me=k(!1),ve=k(!1),p=k(ze()),V=k(Pe()),c=k(qe()),We=v({get:()=>c.value.intensity??"",set:l=>{c.value.intensity=l===""?null:l}}),S=k({note_date:"",existing_content:"",content:""}),dl=v(()=>p.value.id?"编辑血糖血压记录":"新增血糖血压记录"),ml=v(()=>V.value.id?"编辑饮食记录":"新增饮食记录"),vl=v(()=>c.value.id?"编辑运动记录":"新增运动记录"),$e=v(()=>ee(new Date)),G=v(()=>D.value&&S.value.note_date===$e.value),pl=v(()=>G.value?"新增/追加跟踪备注":"查看跟踪备注"),he=k(null),Fe=k(0),fl=[{key:"fasting",label:"空腹血糖"},{key:"postprandial",label:"餐后2h血糖"},{key:"other",label:"其他血糖"},{key:"bp",label:"血压"},{key:"western",label:"西药"},{key:"insulin",label:"胰岛素"},{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"},{key:"exercise",label:"运动"},{key:"tracking",label:"跟踪备注"}],_l=v(()=>[...fl]),gl=v(()=>{const l=te.value.length;if(l<=0||l>7)return 100;const e=Math.max(Fe.value-ra-2,0),r=e>0?Math.floor(e/l):100;return Math.max(100,r)});let Z=0;function ee(l){return`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`}function Ae(l){return new Date(`${l}T00:00:00`)}function le(){var l;Fe.value=((l=he.value)==null?void 0:l.clientWidth)||0}function ze(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:"",systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""}}function Pe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}}function qe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,exercise_type:"",duration:0,intensity:1,images:[],note:""}}function yl(l){return l.getTime()>Date.now()}function Oe(l){if(l==="custom"){const[b,s]=j.value||["",""];return{start:b||"",end:s||""}}const e=l==="7"?7:30,r=new Date;r.setHours(0,0,0,0);const f=new Date(r);return f.setDate(f.getDate()-(e-1)),{start:ee(f),end:ee(r)}}const Ke=v(()=>Oe(F.value)),te=v(()=>{const{start:l,end:e}=Ke.value;if(!l||!e)return[];const r=[],f=Ae(e),b=Ae(l).getTime();for(;f.getTime()>=b;)r.push(ee(f)),f.setDate(f.getDate()-1);return r}),Ge=v(()=>z.value.some(l=>Number(l.source)===1));function Re(l){const e=new Map;for(const r of l){const f=String(r.record_date||"");if(!f)continue;const b=e.get(f)||[];b.push(r),e.set(f,b)}return e}const ae=v(()=>Re(z.value)),pe=v(()=>Re(Q.value)),fe=v(()=>Re(J.value)),Se=v(()=>ae.value.get(T.value)||[]),Te=v(()=>pe.value.get(T.value)||[]),Ee=v(()=>fe.value.get(T.value)||[]),bl=[{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"}];function Ue(l){return l.record_time?String(l.record_time):"未记录具体时间"}function je(l){const e={dawn:"凌晨",early_morning:"清晨",morning:"上午",noon:"中午",afternoon:"下午",evening:"晚上",night:"夜间",bedtime:"睡前"},r=String(l.record_time_period||"");return e[r]||r||"未提供时段"}function cl(l){return{1:"低强度",2:"中强度",3:"高强度"}[Number(l)]||"未记录"}function kl(l){const e=r=>r==null||r===""?"—":String(r);return[{label:"空腹血糖",value:`${e(l.fasting_blood_sugar)} mmol/L`},{label:"餐后2h血糖",value:`${e(l.postprandial_blood_sugar)} mmol/L`},{label:"其他血糖",value:`${e(l.other_blood_sugar)} mmol/L`},{label:"血压",value:l.systolic_pressure||l.diastolic_pressure?`${il(l)} mmHg`:"—"},{label:"西药",value:e(l.western_medicine)},{label:"胰岛素",value:e(l.insulin)},{label:"备注",value:e(l.remark)}]}function ie(l,e){var r,f,b;return["breakfast","lunch","dinner"].includes(l)?((r=pe.value.get(e))==null?void 0:r.length)||0:l==="exercise"?((f=fe.value.get(e))==null?void 0:f.length)||0:l==="tracking"?0:((b=ae.value.get(e))==null?void 0:b.length)||0}const Ne=v(()=>{const l=new Map;for(const e of X.value){const r=String(e.note_date||"");!r||l.has(r)||l.set(r,e)}return l}),Qe=v(()=>[...te.value].reverse()),_e=v(()=>Qe.value.reduce((l,e)=>{const r=ae.value.get(e)||[],f=b=>r.map(s=>wl(s[b])).find(s=>s!==null)??null;return l.fasting.push(f("fasting_blood_sugar")),l.postprandial.push(f("postprandial_blood_sugar")),l},{fasting:[],postprandial:[]})),xl=v(()=>[..._e.value.fasting,..._e.value.postprandial].some(l=>l!=null)),Vl=v(()=>({tooltip:{trigger:"axis"},legend:{top:0,data:["空腹血糖","餐后血糖"]},grid:{left:24,right:24,top:52,bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:Qe.value.map(l=>Je(l))},yAxis:{type:"value",name:"mmol/L",splitLine:{lineStyle:{color:"#e5e7eb"}}},series:[{name:"空腹血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.fasting,symbolSize:7,itemStyle:{color:"#2563eb"},lineStyle:{width:3,color:"#2563eb"}},{name:"餐后血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.postprandial,symbolSize:7,itemStyle:{color:"#f97316"},lineStyle:{width:3,color:"#f97316"}}]}));function Je(l){return l.slice(5)}function wl(l){if(l===""||l==null)return null;const e=Number(l);return!Number.isFinite(e)||e===0?null:e}function W(l,e){const r=ae.value.get(e)||[],f=pe.value.get(e)||[],b=fe.value.get(e)||[],s=Ne.value.get(e),U={fasting:"fasting_blood_sugar",postprandial:"postprandial_blood_sugar",other:"other_blood_sugar",western:"western_medicine",insulin:"insulin"}[l];if(U||l==="bp"){const R=r.filter(w=>l==="bp"?!!(w.systolic_pressure||w.diastolic_pressure):w[U]!=null&&w[U]!==""),M=w=>l==="fasting"?_t(w.fasting_blood_sugar,L.age):l==="postprandial"?gt(w.postprandial_blood_sugar,L.age):l==="other"?yt(w.other_blood_sugar,L.age):l==="bp"&&bt(w);return{value:R.map(w=>l==="bp"?il(w):String(w[U])).join(" / "),isHigh:R.some(M),hasRecord:R.length>0,isPatientSelf:R.some(w=>Number(w.source)===1)}}if(["breakfast","lunch","dinner"].includes(l)){const R=f.filter(M=>{var w;return M[l]||M[`${l}_foods`]||((w=M[`${l}_images`])==null?void 0:w.length)}).length;return{value:R?"✓":"",isHigh:!1,hasRecord:R>0}}return l==="exercise"?{value:b.map(R=>R.duration!=null?`${R.duration}min`:R.exercise_type||"已记录").join(" / "),isHigh:!1,hasRecord:b.length>0}:l==="tracking"?{value:s!=null&&s.content?Ze(s.content):"",isHigh:!1,hasRecord:!!(s!=null&&s.content)}:{value:"",isHigh:!1,hasRecord:!1}}async function E(){const l=++Z,e=C.value;if(!e){se.value=!1,z.value=[],Q.value=[],J.value=[],X.value=[];return}const{start:r,end:f}=Ke.value;if(F.value==="custom"&&(!r||!f))return;const b=[...te.value];se.value=!0;try{const s=await ot({id:e,start_date:r,end_date:f}),H=await st({diagnosis_id:e});if(l!==Z||e!==C.value)return;z.value=Array.isArray(s==null?void 0:s.blood_records)?s.blood_records:[],Q.value=Array.isArray(s==null?void 0:s.diet_records)?s.diet_records:[],J.value=Array.isArray(s==null?void 0:s.exercise_records)?s.exercise_records:[],X.value=Array.isArray(H)?H.filter(U=>b.includes(String((U==null?void 0:U.note_date)||""))):[]}catch{l===Z&&(z.value=[],Q.value=[],J.value=[],X.value=[])}finally{l===Z&&(se.value=!1)}}function Dl(){if(F.value==="custom"&&!j.value){const l=Oe("7");j.value=[l.start,l.end]}E(),Me(le)}function Cl(){F.value==="custom"&&E()}function Xe(l){const e=String(l||"");return/^\d{2}:\d{2}$/.test(e)?`${e}:00`:e}function ge(l,e){D.value&&(p.value={...ze(e),...l},Le.value=Xe(l==null?void 0:l.record_time),P.value=!0)}function ye(l,e){D.value&&(V.value={...Pe(e),...l,breakfast_images:[...(l==null?void 0:l.breakfast_images)||[]],lunch_images:[...(l==null?void 0:l.lunch_images)||[]],dinner_images:[...(l==null?void 0:l.dinner_images)||[]]},q.value=!0)}function be(l,e){D.value&&(c.value={...qe(e),...l,...l?{duration:l.duration??null,intensity:l.intensity??null}:{},images:[...(l==null?void 0:l.images)||[]]},O.value=!0)}function ce(l){if(!D.value)return;const e=te.value[0]||ee(new Date);if(l==="blood")return ge(void 0,e);if(l==="diet")return ye(void 0,e);if(l==="exercise")return be(void 0,e);ke("tracking",$e.value)}function ke(l,e){var f,b,s;if(!Ve(l,e))return;if(l==="tracking"){const H=Ne.value.get(e);S.value={note_date:e,existing_content:String((H==null?void 0:H.content)||""),content:""},K.value=!0;return}if((((f=ae.value.get(e))==null?void 0:f.length)||0)+(((b=pe.value.get(e))==null?void 0:b.length)||0)+(((s=fe.value.get(e))==null?void 0:s.length)||0)){T.value=e,ue.value=!0;return}if(["breakfast","lunch","dinner"].includes(l))return ye(void 0,e);if(l==="exercise")return be(void 0,e);ge(void 0,e)}async function $l(){if(!D.value||re.value)return;if(!p.value.record_date){h.msgWarning("请选择记录日期");return}const l=C.value,e={...p.value};"record_time_estimated"in e&&Xe(e.record_time)!==Le.value&&(e.record_time_estimated=0,e.record_time_period="",e.record_time_text=""),re.value=!0;try{if(e.id?await ut(e):await rt(e),l!==C.value)return;P.value=!1,await E()}finally{re.value=!1}}async function Rl(){if(!D.value||de.value)return;if(!V.value.record_date){h.msgWarning("请选择记录日期");return}const l=C.value,e={...V.value};de.value=!0;try{if(e.id?await dt(e):await mt(e),l!==C.value)return;q.value=!1,await E()}finally{de.value=!1}}async function Sl(){if(!D.value||me.value)return;if(!c.value.record_date){h.msgWarning("请选择记录日期");return}if(!c.value.exercise_type){h.msgWarning("请选择运动类型");return}if(!c.value.id&&!c.value.duration){h.msgWarning("请输入运动时长");return}const l=C.value,e={...c.value,duration:c.value.duration??null,intensity:c.value.intensity??null};me.value=!0;try{if(e.id?await vt(e):await pt(e),l!==C.value)return;O.value=!1,await E()}finally{me.value=!1}}async function Tl(){if(ve.value)return;if(!S.value.note_date){h.msgWarning("请选择记录日期");return}if(!G.value){h.msgWarning("仅支持给今天追加跟踪备注");return}const l=S.value.content.trim();if(!l){h.msgWarning("请输入跟踪备注");return}const e=C.value;ve.value=!0;try{if(await ft({diagnosis_id:e,tracking_content:l}),e!==C.value)return;K.value=!1,await E()}finally{ve.value=!1}}function Ze(l){return Be(l)[0]||""}function Be(l){return l.split(`
`).map(e=>e.trim()).filter(Boolean)}function xe(l){var e;return String(((e=Ne.value.get(l))==null?void 0:e.content)||"")}function El(l){return Ze(l)}function Ve(l,e){return l==="tracking"?!!xe(e)||D.value&&e===$e.value:D.value||ie(l,e)>0}return xt(()=>L.diagnosisId,()=>{ue.value=!1,P.value=!1,q.value=!1,O.value=!1,K.value=!1,z.value=[],Q.value=[],J.value=[],X.value=[],E(),Me(le)}),Vt(()=>{L.diagnosisId&&E(),Me(le),window.addEventListener("resize",le)}),wt(()=>{Z++,window.removeEventListener("resize",le)}),ol({refresh:E}),(l,e)=>{const r=Ml,f=Hl,b=Kl,s=Yl,H=Ll,U=Wl,R=Il,M=Fl,w=Al,el=zl,Ul=hl,_=Ol,Nl=Gl,ne=jl,Y=Ql,we=ql,De=Pl,He=Jl,Ce=lt,N=Zl,ll=Xl,Bl=et;return Dt((o(),d("div",Rt,[n("div",St,[n("div",Tt,[a(f,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=t=>F.value=t),onChange:Dl},{default:i(()=>[a(r,{value:"7"},{default:i(()=>[...e[44]||(e[44]=[m("最近7天",-1)])]),_:1}),a(r,{value:"30"},{default:i(()=>[...e[45]||(e[45]=[m("最近30天",-1)])]),_:1}),a(r,{value:"custom"},{default:i(()=>[...e[46]||(e[46]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),F.value==="custom"?(o(),x(b,{key:0,modelValue:j.value,"onUpdate:modelValue":e[1]||(e[1]=t=>j.value=t),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,"disabled-date":yl,onChange:Cl},null,8,["modelValue"])):y("",!0)]),D.value?(o(),d("div",Et,[Ge.value?(o(),d("span",Ut,[...e[47]||(e[47]=[n("span",{class:"daily-matrix__cell-patient"},"自录",-1),n("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):y("",!0),a(s,{type:"primary",onClick:e[2]||(e[2]=t=>ce("blood"))},{default:i(()=>[...e[48]||(e[48]=[m("+血糖",-1)])]),_:1}),a(s,{onClick:e[3]||(e[3]=t=>ce("diet"))},{default:i(()=>[...e[49]||(e[49]=[m("+饮食",-1)])]),_:1}),a(s,{onClick:e[4]||(e[4]=t=>ce("exercise"))},{default:i(()=>[...e[50]||(e[50]=[m("+运动",-1)])]),_:1}),a(s,{onClick:e[5]||(e[5]=t=>ce("tracking"))},{default:i(()=>[...e[51]||(e[51]=[m("+备注",-1)])]),_:1}),a(s,{onClick:E},{default:i(()=>[...e[52]||(e[52]=[m("刷新",-1)])]),_:1})])):(o(),d("div",Nt,[Ge.value?(o(),d("span",Bt,[...e[53]||(e[53]=[n("span",{class:"daily-matrix__cell-patient"},"自录",-1),n("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):y("",!0),a(s,{onClick:E},{default:i(()=>[...e[54]||(e[54]=[m("刷新",-1)])]),_:1})]))]),n("div",{ref_key:"tableWrapRef",ref:he,class:"daily-matrix__table-wrap"},[a(R,{data:_l.value,border:"",stripe:"","row-key":"key",class:"daily-matrix__table","empty-text":"暂无记录"},{default:i(()=>[a(H,{prop:"label",label:"指标",fixed:"left",width:"120"}),(o(!0),d($,null,I(te.value,t=>(o(),x(H,{key:t,label:Je(t),"min-width":gl.value,align:"center"},{default:i(({row:u})=>[n("div",{class:$t(["daily-matrix__cell",{"is-clickable":Ve(u.key,t),"is-empty":!W(u.key,t).hasRecord,"is-high":W(u.key,t).isHigh,"is-patient-self":W(u.key,t).isPatientSelf&&W(u.key,t).hasRecord}]),role:Ve(u.key,t)?"button":void 0,tabindex:Ve(u.key,t)?0:void 0,onClick:B=>ke(u.key,t),onKeydown:[al(B=>ke(u.key,t),["enter"]),al(tt(B=>ke(u.key,t),["prevent"]),["space"])]},[u.key==="tracking"&&xe(t)?(o(),x(U,{key:0,placement:"top",effect:"light","show-after":150},{content:i(()=>[n("div",Mt,[(o(!0),d($,null,I(Be(xe(t)),(B,A)=>(o(),d("div",{key:`${t}-${A}`,class:"daily-matrix__tracking-tooltip-line"},g(B),1))),128))])]),default:i(()=>[n("div",Yt,g(El(xe(t))),1)]),_:2},1024)):W(u.key,t).value?(o(),d($,{key:1},[n("span",null,g(W(u.key,t).value),1),ie(u.key,t)>1?(o(),d("span",It,g(ie(u.key,t))+"条 ",1)):y("",!0),W(u.key,t).isHigh?(o(),d("span",Lt,"↑")):y("",!0),W(u.key,t).isPatientSelf?(o(),x(U,{key:2,content:"患者在小程序自录的数据",placement:"top","show-after":120},{default:i(()=>[...e[55]||(e[55]=[n("span",{class:"daily-matrix__cell-patient"},"自录",-1)])]),_:1})):y("",!0)],64)):(o(),d($,{key:2},[ie(u.key,t)>0?(o(),d("span",Wt,"查看"+g(ie(u.key,t))+"条",1)):(o(),d("span",ht,"—"))],64))],42,Ht)]),_:2},1032,["label","min-width"]))),128))]),_:1},8,["data"])],512),n("div",Ft,[e[56]||(e[56]=n("div",{class:"daily-matrix__section-title"},"血糖趋势",-1)),e[57]||(e[57]=n("p",{class:"daily-matrix__hint"},"按日展示最新有效血糖值;点击表格查看当天全部原始记录。",-1)),xl.value?(o(),x(Ct(at),{key:0,class:"daily-matrix__chart-canvas",option:Vl.value,autoresize:""},null,8,["option"])):(o(),x(M,{key:1,description:"当前时间范围暂无血糖数据","image-size":84}))]),rl.value?(o(),d("div",At,[e[58]||(e[58]=n("div",{class:"daily-matrix__section-title"},"待办事项",-1)),a(it,{"diagnosis-id":C.value,"patient-id":oe.value,"patient-name":ul.value,"read-only":Ye.value},null,8,["diagnosis-id","patient-id","patient-name","read-only"])])):y("",!0),a(Ul,{modelValue:ue.value,"onUpdate:modelValue":e[9]||(e[9]=t=>ue.value=t),title:`${T.value} 日常记录明细`,size:"min(640px, 100vw)"},{default:i(()=>[e[72]||(e[72]=n("p",{class:"daily-matrix__hint"},"每张卡片是一条独立记录;相同数值也不会合并。请在对应记录上点击编辑。",-1)),n("section",zt,[n("div",Pt,[n("h3",null,"血糖血压 · "+g(Se.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[6]||(e[6]=t=>ge(void 0,T.value))},{default:i(()=>[...e[59]||(e[59]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Se.value.length?y("",!0):(o(),x(M,{key:0,description:"当天暂无血糖血压记录","image-size":48})),(o(!0),d($,null,I(Se.value,t=>(o(),d("article",{key:t.id,class:"daily-matrix__detail-record"},[n("header",qt,[n("strong",null,[m(g(Ue(t))+" ",1),n("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:u=>ge(t,T.value)},{default:i(()=>[...e[60]||(e[60]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),n("div",Ot,[Number(t.record_time_estimated)===1?(o(),x(w,{key:0,type:"warning",size:"small"},{default:i(()=>[...e[61]||(e[61]=[m("估计时间",-1)])]),_:1})):y("",!0),t.record_time_period?(o(),x(w,{key:1,type:"info",size:"small"},{default:i(()=>[m("时段:"+g(je(t)),1)]),_:2},1024)):y("",!0),t.followup_audio_task_id?(o(),x(w,{key:2,size:"small"},{default:i(()=>[...e[62]||(e[62]=[m("随访录音",-1)])]),_:1})):y("",!0),Number(t.source)===1?(o(),d("span",Kt,"患者自录")):y("",!0)]),t.record_time_text?(o(),d("p",Gt,"时间原文:"+g(t.record_time_text),1)):y("",!0),n("dl",jt,[(o(!0),d($,null,I(kl(t),u=>(o(),d($,{key:u.label},[n("dt",null,g(u.label),1),n("dd",null,g(u.value),1)],64))),128))])]))),128))]),n("section",Qt,[n("div",Jt,[n("h3",null,"饮食 · "+g(Te.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[7]||(e[7]=t=>ye(void 0,T.value))},{default:i(()=>[...e[63]||(e[63]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Te.value.length?y("",!0):(o(),x(M,{key:0,description:"当天暂无饮食记录","image-size":48})),(o(!0),d($,null,I(Te.value,t=>(o(),d("article",{key:t.id,class:"daily-matrix__detail-record"},[n("header",Xt,[n("strong",null,[m(g(Ue(t))+" ",1),n("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:u=>ye(t,T.value)},{default:i(()=>[...e[64]||(e[64]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),n("dl",Zt,[(o(),d($,null,I(bl,u=>{var B;return o(),d($,{key:u.key},[n("dt",null,g(u.label),1),n("dd",null,[m(g(t[`${u.key}_foods`]||t[u.key]||"—")+" ",1),(B=t[`${u.key}_images`])!=null&&B.length?(o(),d("div",ea,[(o(!0),d($,null,I(t[`${u.key}_images`],(A,tl)=>(o(),x(el,{key:`${A}-${tl}`,src:A,"preview-src-list":t[`${u.key}_images`],"initial-index":tl,"preview-teleported":"",fit:"cover"},null,8,["src","preview-src-list","initial-index"]))),128))])):y("",!0)])],64)}),64)),e[65]||(e[65]=n("dt",null,"备注",-1)),n("dd",null,g(t.note||"—"),1)])]))),128))]),n("section",la,[n("div",ta,[n("h3",null,"运动 · "+g(Ee.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[8]||(e[8]=t=>be(void 0,T.value))},{default:i(()=>[...e[66]||(e[66]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Ee.value.length?y("",!0):(o(),x(M,{key:0,description:"当天暂无运动记录","image-size":48})),(o(!0),d($,null,I(Ee.value,t=>{var u;return o(),d("article",{key:t.id,class:"daily-matrix__detail-record"},[n("header",aa,[n("strong",null,[m(g(Ue(t))+" ",1),n("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:B=>be(t,T.value)},{default:i(()=>[...e[67]||(e[67]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),n("dl",ia,[e[68]||(e[68]=n("dt",null,"运动",-1)),n("dd",null,g(t.exercise_type||"—"),1),e[69]||(e[69]=n("dt",null,"时长",-1)),n("dd",null,g(t.duration==null?"未记录":`${t.duration} 分钟`),1),e[70]||(e[70]=n("dt",null,"强度",-1)),n("dd",null,g(cl(t.intensity)),1),e[71]||(e[71]=n("dt",null,"备注",-1)),n("dd",null,g(t.note||"—"),1)]),(u=t.images)!=null&&u.length?(o(),d("div",na,[(o(!0),d($,null,I(t.images,(B,A)=>(o(),x(el,{key:`${B}-${A}`,src:B,"preview-src-list":t.images,"initial-index":A,"preview-teleported":"",fit:"cover"},null,8,["src","preview-src-list","initial-index"]))),128))])):y("",!0)])}),128))])]),_:1},8,["modelValue","title"]),a(De,{modelValue:P.value,"onUpdate:modelValue":e[21]||(e[21]=t=>P.value=t),title:dl.value,width:"600px","close-on-click-modal":!1},{footer:i(()=>[a(s,{onClick:e[20]||(e[20]=t=>P.value=!1)},{default:i(()=>[...e[78]||(e[78]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:re.value,disabled:!D.value,onClick:$l},{default:i(()=>[...e[79]||(e[79]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:i(()=>[a(we,{model:p.value,"label-width":"120px"},{default:i(()=>[a(_,{label:"记录日期",required:""},{default:i(()=>[a(b,{modelValue:p.value.record_date,"onUpdate:modelValue":e[10]||(e[10]=t=>p.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(_,{label:"记录时间"},{default:i(()=>[a(Nl,{modelValue:p.value.record_time,"onUpdate:modelValue":e[11]||(e[11]=t=>p.value.record_time=t),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),Number(p.value.record_time_estimated)===1?(o(),x(_,{key:0,label:"时间说明"},{default:i(()=>[n("div",oa," 估计时间 · "+g(je(p.value))+";原文:"+g(p.value.record_time_text||"未提供")+"。 手动修改记录时间后会清除估计标记;只改数值则保留来源。 ",1)]),_:1})):y("",!0),a(_,{label:"空腹血糖"},{default:i(()=>[a(ne,{modelValue:p.value.fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=t=>p.value.fasting_blood_sugar=t),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[73]||(e[73]=n("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"餐后2小时血糖"},{default:i(()=>[a(ne,{modelValue:p.value.postprandial_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=t=>p.value.postprandial_blood_sugar=t),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[74]||(e[74]=n("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"其他血糖"},{default:i(()=>[a(Y,{modelValue:p.value.other_blood_sugar,"onUpdate:modelValue":e[14]||(e[14]=t=>p.value.other_blood_sugar=t),type:"number",style:{width:"200px"}},null,8,["modelValue"]),e[75]||(e[75]=n("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"收缩压(高压)"},{default:i(()=>[a(ne,{modelValue:p.value.systolic_pressure,"onUpdate:modelValue":e[15]||(e[15]=t=>p.value.systolic_pressure=t),min:0,max:300},null,8,["modelValue"]),e[76]||(e[76]=n("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(_,{label:"舒张压(低压)"},{default:i(()=>[a(ne,{modelValue:p.value.diastolic_pressure,"onUpdate:modelValue":e[16]||(e[16]=t=>p.value.diastolic_pressure=t),min:0,max:200},null,8,["modelValue"]),e[77]||(e[77]=n("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(_,{label:"西药"},{default:i(()=>[a(Y,{modelValue:p.value.western_medicine,"onUpdate:modelValue":e[17]||(e[17]=t=>p.value.western_medicine=t)},null,8,["modelValue"])]),_:1}),a(_,{label:"胰岛素"},{default:i(()=>[a(Y,{modelValue:p.value.insulin,"onUpdate:modelValue":e[18]||(e[18]=t=>p.value.insulin=t)},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:i(()=>[a(Y,{modelValue:p.value.remark,"onUpdate:modelValue":e[19]||(e[19]=t=>p.value.remark=t),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:q.value,"onUpdate:modelValue":e[31]||(e[31]=t=>q.value=t),title:ml.value,width:"800px","close-on-click-modal":!1},{footer:i(()=>[a(s,{onClick:e[30]||(e[30]=t=>q.value=!1)},{default:i(()=>[...e[83]||(e[83]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:de.value,disabled:!D.value,onClick:Rl},{default:i(()=>[...e[84]||(e[84]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:i(()=>[a(we,{model:V.value,"label-width":"100px"},{default:i(()=>[a(_,{label:"记录日期",required:""},{default:i(()=>[a(b,{modelValue:V.value.record_date,"onUpdate:modelValue":e[22]||(e[22]=t=>V.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(He,{"content-position":"left"},{default:i(()=>[...e[80]||(e[80]=[m("早餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:i(()=>[a(Y,{modelValue:V.value.breakfast_foods,"onUpdate:modelValue":e[23]||(e[23]=t=>V.value.breakfast_foods=t),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:i(()=>[a(Ce,{modelValue:V.value.breakfast_images,"onUpdate:modelValue":e[24]||(e[24]=t=>V.value.breakfast_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(He,{"content-position":"left"},{default:i(()=>[...e[81]||(e[81]=[m("午餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:i(()=>[a(Y,{modelValue:V.value.lunch_foods,"onUpdate:modelValue":e[25]||(e[25]=t=>V.value.lunch_foods=t),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:i(()=>[a(Ce,{modelValue:V.value.lunch_images,"onUpdate:modelValue":e[26]||(e[26]=t=>V.value.lunch_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(He,{"content-position":"left"},{default:i(()=>[...e[82]||(e[82]=[m("晚餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:i(()=>[a(Y,{modelValue:V.value.dinner_foods,"onUpdate:modelValue":e[27]||(e[27]=t=>V.value.dinner_foods=t),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:i(()=>[a(Ce,{modelValue:V.value.dinner_images,"onUpdate:modelValue":e[28]||(e[28]=t=>V.value.dinner_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:i(()=>[a(Y,{modelValue:V.value.note,"onUpdate:modelValue":e[29]||(e[29]=t=>V.value.note=t),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:O.value,"onUpdate:modelValue":e[39]||(e[39]=t=>O.value=t),title:vl.value,width:"600px","close-on-click-modal":!1},{footer:i(()=>[a(s,{onClick:e[38]||(e[38]=t=>O.value=!1)},{default:i(()=>[...e[85]||(e[85]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:me.value,disabled:!D.value,onClick:Sl},{default:i(()=>[...e[86]||(e[86]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:i(()=>[a(we,{model:c.value,"label-width":"120px"},{default:i(()=>[a(_,{label:"记录日期",required:""},{default:i(()=>[a(b,{modelValue:c.value.record_date,"onUpdate:modelValue":e[32]||(e[32]=t=>c.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(_,{label:"运动类型",required:""},{default:i(()=>[a(ll,{modelValue:c.value.exercise_type,"onUpdate:modelValue":e[33]||(e[33]=t=>c.value.exercise_type=t),placeholder:"请选择运动类型",class:"w-full"},{default:i(()=>[a(N,{label:"散步",value:"散步"}),a(N,{label:"慢跑",value:"慢跑"}),a(N,{label:"游泳",value:"游泳"}),a(N,{label:"瑜伽",value:"瑜伽"}),a(N,{label:"骑自行车",value:"骑自行车"}),a(N,{label:"打太极拳",value:"打太极拳"}),a(N,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"运动时长(分钟)",required:!c.value.id},{default:i(()=>[a(ne,{modelValue:c.value.duration,"onUpdate:modelValue":e[34]||(e[34]=t=>c.value.duration=t),min:0,max:300,placeholder:"未记录"},null,8,["modelValue"]),c.value.id?(o(),d("span",sa,"留空表示未记录")):y("",!0)]),_:1},8,["required"]),a(_,{label:"运动强度"},{default:i(()=>[a(ll,{modelValue:We.value,"onUpdate:modelValue":e[35]||(e[35]=t=>We.value=t),placeholder:"未记录",class:"w-full"},{default:i(()=>[a(N,{label:"未记录",value:""}),a(N,{label:"低强度",value:1}),a(N,{label:"中强度",value:2}),a(N,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"运动图片"},{default:i(()=>[a(Ce,{modelValue:c.value.images,"onUpdate:modelValue":e[36]||(e[36]=t=>c.value.images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:i(()=>[a(Y,{modelValue:c.value.note,"onUpdate:modelValue":e[37]||(e[37]=t=>c.value.note=t),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:K.value,"onUpdate:modelValue":e[43]||(e[43]=t=>K.value=t),title:pl.value,width:"600px","close-on-click-modal":!1},{footer:i(()=>[a(s,{onClick:e[42]||(e[42]=t=>K.value=!1)},{default:i(()=>[...e[87]||(e[87]=[m("取消",-1)])]),_:1}),G.value?(o(),x(s,{key:0,type:"primary",loading:ve.value,onClick:Tl},{default:i(()=>[...e[88]||(e[88]=[m("确定",-1)])]),_:1},8,["loading"])):y("",!0)]),default:i(()=>[a(we,{model:S.value,"label-width":"100px"},{default:i(()=>[a(_,{label:"记录日期",required:""},{default:i(()=>[a(b,{modelValue:S.value.note_date,"onUpdate:modelValue":e[40]||(e[40]=t=>S.value.note_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full",disabled:!0},null,8,["modelValue"])]),_:1}),S.value.existing_content?(o(),x(_,{key:0,label:"已有备注"},{default:i(()=>[n("div",ua,[(o(!0),d($,null,I(Be(S.value.existing_content),(t,u)=>(o(),d("div",{key:`${S.value.note_date}-${u}`,class:"daily-matrix__tracking-line"},g(t),1))),128))])]),_:1})):y("",!0),a(_,{label:G.value?"追加备注":"备注内容",required:""},{default:i(()=>[a(Y,{modelValue:S.value.content,"onUpdate:modelValue":e[41]||(e[41]=t=>S.value.content=t),type:"textarea",rows:5,maxlength:"1000","show-word-limit":"",disabled:!G.value,placeholder:G.value?"请输入跟踪备注":"历史跟踪备注仅支持查看"},null,8,["modelValue","disabled","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])),[[Bl,se.value]])}}}),_i=ct(da,[["__scopeId","data-v-72ccad23"]]);export{_i as default};