Files
zyt/server/public/admin/assets/ImChatRecordPanel-EilmbQmo.js
T
2026-04-07 18:13:03 +08:00

2 lines
4.9 KiB
JavaScript
Raw 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.
import{K as F,i as H,d as J,L as R,U as S,v as $,a0 as j,T as A}from"./element-plus-D_tJqBgC.js";import{d as G}from"./dayjs-DG77mNTn.js";import{S as K}from"./@element-plus/icons-vue-CmwKjXis.js";import{C as O}from"./tcm-CgwtzlaG.js";import{p as Q}from"./im-business-message-parse-CV1kBVNe.js";import{f as U,w as W,ak as a,I as o,a as d,aN as l,J as i,O as r,aP as q,F as h,ap as x,G as u,H as k}from"./@vue/runtime-core-C0pg79pw.js";import{y as X,o as f}from"./@vue/reactivity-BIbyPIZJ.js";import{o as Z,Q as n}from"./@vue/shared-mAAVTE9n.js";import{_ as w}from"./index-CLJhkNLF.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.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"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const tt={class:"im-chat-record-panel"},et={class:"toolbar mb-3"},st={class:"chat-wrap"},at={key:0,class:"chat-list"},ot={class:"meta"},it={class:"name"},nt={class:"time"},mt={class:"bubble"},lt={key:0,class:"friendly-text"},rt={class:"friendly-main"},ct={key:0,class:"friendly-sub"},pt={key:1,class:"text-content"},_t={key:2,class:"text-content"},dt={key:3,class:"muted"},ut=U({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(C,{expose:E}){const y=C,m=f(!1),c=f([]),B=f(""),g=f("");function L(t){if(t==null||!t)return"—";const s=t>1e12?Math.floor(t/1e3):t;return G.unix(s).format("YYYY-MM-DD HH:mm:ss")}function b(t){const s=(t.text||"").trim();if(!s)return null;const p=s.startsWith("{")&&(/\bbusinessID\b/.test(s)||/\bcmd\b/.test(s));return t.msg_type==="custom"||p?Q(s):null}function I(t){const s=b(t);return s!=null&&s.tag?s.tag:{text:"",image:"图片",file:"文件",sound:"语音",video:"视频",location:"位置",custom:"自定义",face:"表情",other:""}[t.msg_type]||(t.msg_type!=="other"?t.msg_type:"")}function M(t){return t.is_from_doctor?t.from_staff_name?`医生(${t.from_staff_name}`:"医生/员工":g.value?`患者(${g.value}`:"患者"}async function v(){if(y.diagnosisId){m.value=!0;try{const t=await O({diagnosis_id:y.diagnosisId});c.value=(t==null?void 0:t.lists)||[],B.value=(t==null?void 0:t.patient_im_id)||"",g.value=(t==null?void 0:t.patient_name)||""}catch(t){console.error(t),c.value=[]}finally{m.value=!1}}}return W(()=>y.diagnosisId,()=>{v()},{immediate:!0}),E({refresh:v}),(t,s)=>{const p=F,N=J,D=H,P=S,T=$,V=j,Y=A,z=R;return a(),o("div",tt,[d(p,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:l(()=>[...s[0]||(s[0]=[i("p",{class:"panel-tip"},[r(" 展示单聊记录:已合并患者 与 "),i("strong",null,"所有医生 / 医助账号"),r("分别产生的会话,按时间排序。 数据来自 IM 漫游;若未开通漫游或某账号与该患者无会话,对应侧无消息。 ")],-1)])]),_:1}),i("div",et,[d(D,{type:"primary",link:"",loading:m.value,onClick:v},{default:l(()=>[d(N,{class:"mr-1"},{default:l(()=>[d(X(K))]),_:1}),s[1]||(s[1]=r(" 刷新 ",-1))]),_:1},8,["loading"])]),q((a(),o("div",st,[!m.value&&c.value.length?(a(),o("div",at,[(a(!0),o(h,null,x(c.value,e=>(a(),o("div",{key:e.msg_id,class:Z(["chat-row",e.is_from_doctor?"from-doctor":"from-patient"])},[i("div",ot,[i("span",it,n(M(e)),1),i("span",nt,n(L(e.time)),1),I(e)?(a(),u(P,{key:0,size:"small",type:"info",class:"ml-2"},{default:l(()=>[r(n(I(e)),1)]),_:2},1024)):k("",!0)]),i("div",mt,[e.msg_type==="image"&&e.image_url?(a(),u(T,{key:0,src:e.image_url,"preview-src-list":[e.image_url],fit:"contain",class:"chat-img"},null,8,["src","preview-src-list"])):(e.msg_type==="file"||e.msg_type==="sound"||e.msg_type==="video")&&e.file_url?(a(),u(V,{key:1,href:e.file_url,target:"_blank",type:"primary"},{default:l(()=>[r(n(e.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(!0),o(h,{key:2},x([b(e)],_=>(a(),o(h,{key:e.msg_id+"-body"},[_?(a(),o("div",lt,[i("div",rt,n(_.main),1),_.sub?(a(),o("div",ct,n(_.sub),1)):k("",!0)])):e.msg_type==="text"&&e.text?(a(),o("div",pt,n(e.text),1)):e.text?(a(),o("div",_t,n(e.text),1)):(a(),o("span",dt,"(无法展示该消息类型)"))],64))),128))])],2))),128))])):m.value?k("",!0):(a(),u(Y,{key:1,description:"暂无 IM 聊天记录"}))])),[[z,m.value]])])}}}),te=w(ut,[["__scopeId","data-v-2c1a1f20"]]);export{te as default};