Files
zyt/server/public/admin/assets/ImChatRecordPanel-BAawcp6M.js
T
2026-04-30 21:43:48 +08:00

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