Files
zyt/server/public/admin/assets/ImChatRecordPanel-CRxSZX0X.js
T
2026-04-17 09:47:17 +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 R,L as J,U,v as $,a1 as j,T as A}from"./element-plus-DCRlGjqn.js";import{d as G}from"./dayjs-DG77mNTn.js";import{L as K}from"./@element-plus/icons-vue-jYCthPJY.js";import{U as O}from"./tcm-PvaD3bI2.js";import{p as Q}from"./im-business-message-parse-ClZDqEhB.js";import{f as S,w as W,ak as a,I as o,a as d,aN as m,J as i,O as r,aP as q,F as v,ap as x,G as u,H as h}from"./@vue/runtime-core-C0pg79pw.js";import{y as X,o as k,u as Z}from"./@vue/reactivity-BIbyPIZJ.js";import{o as w,Q as n}from"./@vue/shared-mAAVTE9n.js";import{_ as tt}from"./index-DsBUBCgs.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.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 et={class:"im-chat-record-panel"},st={class:"toolbar mb-3"},at={class:"chat-wrap"},ot={key:0,class:"chat-list"},it={class:"meta"},nt={class:"name"},lt={class:"time"},mt={class:"bubble"},rt={key:0,class:"friendly-text"},ct={class:"friendly-main"},pt={key:0,class:"friendly-sub"},_t={key:1,class:"text-content"},dt={key:2,class:"text-content"},ut={key:3,class:"muted"},ft=S({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(E,{expose:C}){const f=E,l=k(!1),c=Z([]),L=k(""),y=k("");function B(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}`:"医生/员工":y.value?`患者(${y.value}`:"患者"}async function g(){if(f.diagnosisId){l.value=!0;try{const t=await O({diagnosis_id:f.diagnosisId});c.value=(t==null?void 0:t.lists)||[],L.value=(t==null?void 0:t.patient_im_id)||"",y.value=(t==null?void 0:t.patient_name)||""}catch(t){console.error(t),c.value=[]}finally{l.value=!1}}}return W(()=>f.diagnosisId,()=>{g()},{immediate:!0}),C({refresh:g}),(t,s)=>{const p=F,N=R,D=H,P=U,T=$,V=j,Y=A,z=J;return a(),o("div",et,[d(p,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:m(()=>[...s[0]||(s[0]=[i("p",{class:"panel-tip"},[r(" 展示单聊记录:已合并患者 与 "),i("strong",null,"所有医生 / 医助账号"),r("分别产生的会话,按时间排序。 数据来自 IM 漫游;若未开通漫游或某账号与该患者无会话,对应侧无消息。 ")],-1)])]),_:1}),i("div",st,[d(D,{type:"primary",link:"",loading:l.value,onClick:g},{default:m(()=>[d(N,{class:"mr-1"},{default:m(()=>[d(X(K))]),_:1}),s[1]||(s[1]=r(" 刷新 ",-1))]),_:1},8,["loading"])]),q((a(),o("div",at,[!l.value&&c.value.length?(a(),o("div",ot,[(a(!0),o(v,null,x(c.value,e=>(a(),o("div",{key:e.msg_id,class:w(["chat-row",e.is_from_doctor?"from-doctor":"from-patient"])},[i("div",it,[i("span",nt,n(M(e)),1),i("span",lt,n(B(e.time)),1),I(e)?(a(),u(P,{key:0,size:"small",type:"info",class:"ml-2"},{default:m(()=>[r(n(I(e)),1)]),_:2},1024)):h("",!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:m(()=>[r(n(e.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(!0),o(v,{key:2},x([b(e)],_=>(a(),o(v,{key:e.msg_id+"-body"},[_?(a(),o("div",rt,[i("div",ct,n(_.main),1),_.sub?(a(),o("div",pt,n(_.sub),1)):h("",!0)])):e.msg_type==="text"&&e.text?(a(),o("div",_t,n(e.text),1)):e.text?(a(),o("div",dt,n(e.text),1)):(a(),o("span",ut,"(无法展示该消息类型)"))],64))),128))])],2))),128))])):l.value?h("",!0):(a(),u(Y,{key:1,description:"暂无 IM 聊天记录"}))])),[[z,l.value]])])}}}),ee=tt(ft,[["__scopeId","data-v-a695859b"]]);export{ee as default};