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

2 lines
13 KiB
JavaScript

import{o as Re,R as ze,ap as Ie,bs as Me,bz as Ne,bw as Pe,q as n,r as o,O as A,be as Ue,P as c,s as t,T as i,ae as v,aw as ye,v as R,aA as Fe,D as be,L as ge,K as Ke,F as z,G as I,u as ke,by as We,ac as je,bo as Ge,bx as Oe,bu as He,M as d,p as x}from"./.pnpm-Cy9nIqIg.js";import{g as Je,h as Qe,i as Xe}from"./assistantService-CHcfTcwu.js";import Ye from"./WecomThread-DhqP1o6s.js";import{s as he,i as J,e as Q}from"./shared-lpbp3iP7.js";import{_ as Ze}from"./index-BGCyUBQ6.js";const qe={class:"alert-inbox","aria-label":"医助行为预警"},et={key:1,class:"metric-strip","aria-label":"预警汇总"},tt={class:"metric"},at={key:0},st={key:1,class:"metric-text"},lt={class:"inbox-panel"},nt={class:"table-heading"},it={class:"role-switch",role:"group","aria-label":"按身份查看"},ot=["aria-pressed"],ut=["aria-pressed"],rt=["aria-pressed"],ct={key:0,class:"chat-workspace","aria-label":"企微聊天"},vt={class:"people-pane"},dt=["onClick"],ft=["onClick"],mt={key:0,class:"pane-note"},pt={class:"chat-pane"},_t={key:1,class:"table-toolbar"},yt={class:"filter-group",role:"group","aria-label":"筛选预警"},bt=["aria-pressed","onClick"],gt={class:"muted"},kt={key:4,class:"feed"},ht={class:"feed-main"},Ct={class:"feed-who"},xt=["onClick"],$t={key:1},Tt={class:"patient"},At={key:2},Et={class:"snippet"},Vt={key:0,class:"review-note"},wt={class:"feed-meta"},Dt={class:"number"},Lt={key:0,class:"feed-actions"},St={class:"review-actions"},Bt=["disabled","onClick"],Rt=["disabled","onClick"],zt=["disabled","onClick"],It=["onSubmit"],Mt={key:6,class:"table-footer"},Nt={class:"muted"},Pt=Re({__name:"AlertInbox",props:{refreshKey:{},canReview:{type:Boolean}},emits:["open-staff"],setup(X,{emit:Ut}){const Y=X,l=d(null),E=d(!1),k=d(""),M=d(""),Z=d(""),p=d("open"),u=d("all"),h=d(1),$=d(""),V=d(0),N=d(null),f=d({id:0,name:"",account:""}),q=x(()=>{var s;return(((s=N.value)==null?void 0:s.staff)||[]).filter(e=>e.conversations>0)}),P=[{value:"open",label:"待处理",status:"open",severity:"all"},{value:"high",label:"高风险",status:"open",severity:"high"},{value:"all",label:"全部",status:"all",severity:"all"},{value:"confirmed",label:"已成立",status:"confirmed",severity:"all"},{value:"false_positive",label:"误报",status:"false_positive",severity:"all"},{value:"followed",label:"已跟进",status:"followed",severity:"all"}],Ce={open:"待处理",confirmed:"已成立",false_positive:"误报",followed:"已跟进"},xe={high:"高",medium:"中",low:"低"},ee=x(()=>P.find(s=>s.value===p.value)||P[0]),$e=x(()=>{var s;return((s=l.value)==null?void 0:s.coverage.map(e=>e.note).join(" · "))||"通话转写和企微尚未接入"}),C=x(()=>{var s;return(s=l.value)==null?void 0:s.coverage.find(e=>e.channel==="call")}),Te=x(()=>{var s,e;return((s=C.value)==null?void 0:s.status)==="no_transcript"?"无正文":((e=C.value)==null?void 0:e.status)==="not_scanned"?"未检查":"未接入"}),Ae=x(()=>{var s,e;return((s=C.value)==null?void 0:s.status)==="no_transcript"?"医助主叫没有可判定转写":((e=C.value)==null?void 0:e.status)==="not_scanned"?"已有转写,尚未写入预警":"有录音也不计为已检查"}),Ee=x(()=>{var s,e,r;return k.value?"暂时无法读取预警,请重试":l.value&&!l.value.schema_ready?"预警表尚未就绪":((s=l.value)==null?void 0:s.scan.state)==="disabled"?"预警扫描尚未开启":((e=l.value)==null?void 0:e.scan.state)==="waiting"&&!l.value.scan.last_scan_at?"尚未完成首次扫描":p.value==="open"&&u.value==="assistant"?"当前没有医助的待处理预警":p.value==="open"&&u.value==="doctor"?"当前没有医生的待处理预警":p.value==="open"&&((r=l.value)!=null&&r.empty_reason)?l.value.empty_reason:p.value==="open"?"当前没有待处理预警":"当前筛选下没有预警"});let _=!1,U=!0,te=!1,ae=!1,T=0,m,w;const F=()=>U&&(typeof document>"u"||document.visibilityState!=="hidden");function se(s){return s.staff.assistant||s.staff.role_name==="医助"?"assistant":s.staff.role_name==="医生"?"doctor":"other"}function Ve(s){return s==="call"?"通话":s==="wecom"?"企微":s==="im"?"聊天":"其他"}function K(){w&&clearTimeout(w),w=void 0}function le(){K(),!_&&te&&F()&&(w=setTimeout(()=>void y(!0),3e4))}async function y(s=!1){if(_||!F())return!1;const e=++T;m==null||m.abort(),m=new AbortController,s||(E.value=!0),k.value="";try{const r=await Je({keyword:Z.value,status:ee.value.status,severity:ee.value.severity,role:u.value,page_no:h.value,page_size:20},m.signal);if(_||e!==T)return!1;if(!r.summary||!r.scan||!Array.isArray(r.lists))throw new Error("预警数据不完整,请刷新后重试");return l.value=r,!0}catch(r){return!_&&e!==T&&!J(r)&&(s||(l.value=null),k.value=Q(r)),!1}finally{!_&&e===T&&(E.value=!1,le())}}function ne(){Z.value=M.value.trim(),h.value=1,y()}function we(s){p.value!==s&&(p.value=s,h.value=1,V.value=0,y())}let D;function W(){D&&clearTimeout(D),D=void 0}function De(){W(),!_&&u.value==="assistant"&&(D=setTimeout(()=>void ie(!0),15e3))}async function ie(s=!1){try{const e=await Xe();if(_)return;N.value=e;const r=f.value,S=e.accounts.some(b=>b.external_id===r.account),B=e.staff.some(b=>b.id===r.id&&!r.account);if(!S&&!B){const b=e.accounts.find(H=>H.conversations>0)||e.accounts[0];b&&(f.value={id:0,name:b.name||"未命名账号",account:b.external_id})}}catch(e){!_&&!J(e)&&!s&&(k.value=Q(e))}finally{De()}}function j(s){f.value=s,u.value!=="assistant"&&(u.value="assistant",h.value=1,y())}function G(s){u.value!==s&&(u.value=s,h.value=1,V.value=0,s==="assistant"?ie():W(),y())}function Le(){y()}async function L(s,e){if(!(!Y.canReview||s.status===e)){if(e==="false_positive"&&$.value.trim()===""){V.value=s.id,$.value="";return}try{await Qe({id:s.id,status:e,note:e==="false_positive"?$.value.trim():""}),V.value=0,$.value="",await y(!0)}catch(r){J(r)||(k.value=Q(r))}}}function O(){if(!F()){K(),m==null||m.abort(),T++,E.value=!1;return}y(!0)}return ze(()=>Y.refreshKey,(s,e)=>void y(e!==void 0),{immediate:!0,flush:"sync"}),Ie(()=>{te=!0,typeof document<"u"&&(document.addEventListener("visibilitychange",O),ae=!0),le()}),Me(()=>{U=!0}),Ne(()=>{U=!1,O()}),Pe(()=>{_=!0,K(),W(),m==null||m.abort(),T++,ae&&typeof document<"u"&&document.removeEventListener("visibilitychange",O)}),(s,e)=>{var oe,ue,re,ce,ve,de,fe,me,pe,_e;const r=Ue,S=Fe,B=Ke,b=We,H=Oe,Se=He,Be=Ge;return n(),o("section",qe,[(oe=l.value)!=null&&oe.scan.reason?(n(),A(r,{key:0,title:l.value.scan.reason,type:"warning",closable:!1,"show-icon":"",class:"scan-note"},null,8,["title"])):c("",!0),l.value?(n(),o("div",et,[t("article",{class:v(["metric",{"metric--attention":l.value.summary.open>0}])},[e[6]||(e[6]=t("span",null,"待处理",-1)),t("strong",null,i(l.value.summary.open),1),e[7]||(e[7]=t("small",null,"还没有人复核",-1))],2),t("article",{class:v(["metric",{"metric--high":l.value.summary.high_open>0}])},[e[8]||(e[8]=t("span",null,"高风险",-1)),t("strong",null,i(l.value.summary.high_open),1),e[9]||(e[9]=t("small",null,"诊疗、承诺、脱离平台",-1))],2),t("article",tt,[e[10]||(e[10]=t("span",null,"聊天命中",-1)),t("strong",null,i(l.value.summary.im_open),1),e[11]||(e[11]=t("small",null,"员工侧已归档文字",-1))]),t("article",{class:v(["metric",{"metric--attention":((ue=C.value)==null?void 0:ue.status)==="available"&&l.value.summary.call_open>0}])},[e[12]||(e[12]=t("span",null,"通话转写",-1)),((re=C.value)==null?void 0:re.status)==="available"?(n(),o("strong",at,i(l.value.summary.call_open),1)):(n(),o("strong",st,i(Te.value),1)),t("small",null,i(((ce=C.value)==null?void 0:ce.status)==="available"?"员工侧转写命中":Ae.value),1)],2)])):c("",!0),t("div",lt,[t("div",nt,[e[14]||(e[14]=t("div",null,[t("h2",null,"命中记录"),t("p",{class:"muted"},"一条记录是一名员工、一条规则、一处原文。没有记录不等于今天没有沟通。")],-1)),t("form",{class:"search-form",onSubmit:ye(ne,["prevent"])},[R(S,{modelValue:M.value,"onUpdate:modelValue":e[0]||(e[0]=a=>M.value=a),"aria-label":"搜索预警",placeholder:"搜索员工或患者",clearable:"",onClear:ne},null,8,["modelValue"]),R(B,{"native-type":"submit"},{default:be(()=>[...e[13]||(e[13]=[ge("搜索",-1)])]),_:1})],32)]),t("div",it,[t("button",{type:"button",class:v({active:u.value==="assistant"}),"aria-pressed":u.value==="assistant",onClick:e[1]||(e[1]=a=>G("assistant"))},[e[15]||(e[15]=t("span",null,"医助",-1)),t("strong",null,i(((ve=l.value)==null?void 0:ve.summary.assistant_open)??0),1),e[16]||(e[16]=t("small",null,"待处理",-1))],10,ot),t("button",{type:"button",class:v({active:u.value==="doctor"}),"aria-pressed":u.value==="doctor",onClick:e[2]||(e[2]=a=>G("doctor"))},[e[17]||(e[17]=t("span",null,"医生",-1)),t("strong",null,i(((de=l.value)==null?void 0:de.summary.doctor_open)??0),1),e[18]||(e[18]=t("small",null,"待处理",-1))],10,ut),t("button",{type:"button",class:v(["role-switch__all",{active:u.value==="all"}]),"aria-pressed":u.value==="all",onClick:e[3]||(e[3]=a=>G("all"))}," 全部身份 ",10,rt)]),u.value==="assistant"?(n(),o("section",ct,[t("aside",vt,[e[19]||(e[19]=t("p",{class:"pane-label"},"企微账号",-1)),(n(!0),o(z,null,I(((fe=N.value)==null?void 0:fe.accounts)||[],a=>(n(),o("button",{key:a.external_id,type:"button",class:v({active:f.value.account===a.external_id}),onClick:g=>j({id:0,name:a.name||"未命名账号",account:a.external_id})},[t("strong",null,i(a.name||"未命名账号"),1),t("small",null,i(a.conversations)+" 个会话",1)],10,dt))),128)),e[20]||(e[20]=t("p",{class:"pane-label"},"已关联医助",-1)),(n(!0),o(z,null,I(q.value,a=>(n(),o("button",{key:a.id,type:"button",class:v({active:f.value.id===a.id&&!f.value.account}),onClick:g=>j({id:a.id,name:a.name,account:""})},[t("strong",null,i(a.name||"未命名医助"),1),t("small",null,i(a.conversations)+" 个会话",1)],10,ft))),128)),q.value.length?c("",!0):(n(),o("p",mt,"还没有医助和企微账号同名或绑定了同一个 UserId。"))]),t("div",pt,[t("h3",null,i(f.value.name||"选择左侧的人"),1),f.value.id||f.value.account?(n(),A(Ye,{key:0,"assistant-id":f.value.id,account:f.value.account},null,8,["assistant-id","account"])):c("",!0)])])):c("",!0),u.value!=="assistant"?(n(),o("div",_t,[t("div",yt,[(n(),o(z,null,I(P,a=>t("button",{key:a.value,type:"button","aria-pressed":p.value===a.value,class:v({active:p.value===a.value}),onClick:g=>we(a.value)},i(a.label),11,bt)),64))]),t("span",gt,i((me=l.value)!=null&&me.scan.last_scan_at?`最近扫描 ${ke(he)(l.value.scan.last_scan_at)}`:"扫描时间待确认"),1)])):c("",!0),k.value?(n(),A(r,{key:2,title:k.value,type:"error",closable:!1,"show-icon":"",class:"table-error"},null,8,["title"])):c("",!0),u.value!=="assistant"&&E.value&&!l.value?(n(),A(b,{key:3,rows:6,animated:"",class:"table-skeleton"})):u.value!=="assistant"&&((pe=l.value)!=null&&pe.lists.length)?je((n(),o("ul",kt,[(n(!0),o(z,null,I(l.value.lists,a=>(n(),o("li",{key:a.id,class:v(["feed-item",`feed-item--${se(a)}`])},[t("div",ht,[t("div",Ct,[t("span",{class:v(["role-pill",`role-pill--${se(a)}`])},i(a.staff.role_name||"员工"),3),a.staff.assistant?(n(),o("button",{key:0,type:"button",class:"staff-link",onClick:g=>j({id:a.staff.id,name:a.staff.name,account:""})},i(a.staff.name||"未命名医助"),9,xt)):(n(),o("strong",$t,i(a.staff.name||"未命名员工"),1)),t("span",Tt,i(a.patient_name||"未命名患者"),1),a.diagnosis_id?(n(),o("small",At,"诊单 #"+i(a.diagnosis_id),1)):c("",!0)]),t("p",Et,i(a.snippet),1),a.review_note?(n(),o("p",Vt,"复核:"+i(a.review_note),1)):c("",!0),t("div",wt,[t("time",Dt,i(ke(he)(a.occurred_at)),1),t("span",{class:v(["severity",`severity--${a.severity}`])},i(xe[a.severity])+" · "+i(a.rule_label),3),t("span",null,i(Ve(a.channel)),1),t("span",null,i(Ce[a.status]),1)])]),X.canReview?(n(),o("div",Lt,[t("div",St,[t("button",{type:"button",disabled:a.status==="confirmed",onClick:g=>L(a,"confirmed")}," 成立 ",8,Bt),t("button",{type:"button",disabled:a.status==="false_positive",onClick:g=>L(a,"false_positive")}," 误报 ",8,Rt),t("button",{type:"button",disabled:a.status==="followed",onClick:g=>L(a,"followed")}," 已跟进 ",8,zt)]),V.value===a.id?(n(),o("form",{key:0,class:"note-form",onSubmit:ye(g=>L(a,"false_positive"),["prevent"])},[R(S,{modelValue:$.value,"onUpdate:modelValue":e[4]||(e[4]=g=>$.value=g),"aria-label":"误报原因",maxlength:"200",placeholder:"填写误报原因"},null,8,["modelValue"]),R(B,{"native-type":"submit",link:"",type:"primary"},{default:be(()=>[...e[21]||(e[21]=[ge("提交",-1)])]),_:1})],40,It)):c("",!0)])):c("",!0)],2))),128))])),[[Be,E.value]]):u.value!=="assistant"?(n(),A(H,{key:5,"image-size":80,description:Ee.value},null,8,["description"])):c("",!0),u.value!=="assistant"?(n(),o("footer",Mt,[t("span",Nt,i($e.value),1),(_e=l.value)!=null&&_e.count?(n(),A(Se,{key:0,"current-page":h.value,"onUpdate:currentPage":e[5]||(e[5]=a=>h.value=a),total:l.value.count,"page-size":20,layout:"total, prev, pager, next",onCurrentChange:Le},null,8,["current-page","total"])):c("",!0)])):c("",!0)])])}}}),Ot=Ze(Pt,[["__scopeId","data-v-b82ad13f"]]);export{Ot as default};