2 lines
2.2 KiB
JavaScript
2 lines
2.2 KiB
JavaScript
import{d as l}from"./dayjs-DG77mNTn.js";function c(s){if(s==null||s==="")return;const i=typeof s=="string"&&/^\d+$/.test(s.trim())?parseInt(s.trim(),10):Number(s);if(!(!Number.isFinite(i)||i<=0))return i>1e12?l(i).format("YYYY-MM-DD HH:mm:ss"):l.unix(i).format("YYYY-MM-DD HH:mm:ss")}function p(s){const i=s.call_type??s.callType??2,t=i===2?"视频":i===1?"语音通话":"通话";let e=String(s.cmd||s.action||"").toLowerCase();if(!e){const n=Number(s.actionType??s.action_type??s.call_action);n===1?e="invite":n===2?e="cancel":n===3?e="accept":n===4?e="reject":n===5?e="timeout":n===6?e="hangup":n===7&&(e="linebusy")}const o={hangup:"已结束",invite:"发起通话",linebusy:"对方忙线",cancel:"已取消呼叫",reject:"已拒绝接听",accept:"已接听",timeout:"无人接听"}[e]||(e?`状态:${e}`:""),u=Number(s.duration??s.call_duration),m=u>0&&(o==="已结束"||o==="已挂断")?` (${Math.floor(u/60)}分${u%60}秒)`:"",f=o?`${t} · ${o}${m}`:t,r=[];if(s.invitee&&r.push(`对方: ${s.invitee}`),s.groupID&&r.push(`群组: ${s.groupID}`),!o){const n=JSON.stringify(s).replace(/"/g,"");r.push(`(原始参数: ${n})`)}return{main:f,sub:r.length?r.join(","):void 0,tag:"通话"}}function b(s){const i=s.trim();if(!i.startsWith("{"))return null;let t;try{t=JSON.parse(i)}catch{return null}if(!("businessID"in t)&&!("cmd"in t))return null;if(t.businessID==="doctor_entered_consult_room")return{main:"医生已进入诊室",sub:c(t.time),tag:"诊室"};if(t.businessID==="patient_opened_chat"){const e=[];t.patientName&&e.push(`患者:${String(t.patientName)}`),t.patientId!=null&&t.patientId!==""&&e.push(`患者 ID:${String(t.patientId)}`),t.doctorId!=null&&t.doctorId!==""&&e.push(`关联医生:${String(t.doctorId)}`);const a=c(t.time);return a&&e.push(a),{main:"患者进入聊天",sub:e.length?e.join(" · "):void 0,tag:"诊室"}}if(t.businessID==="user_typing_status")return{main:"对方正在输入…",tag:"状态"};if(t.businessID==="consultation_complete")return{main:"问诊已完成",sub:c(t.time),tag:"诊室"};if(t.businessID===1||t.businessID==="1"||t.businessID==="av_call"){let e=t.data;if(typeof e=="string")try{e=JSON.parse(e)}catch{}const a={...t,...typeof e=="object"&&e?e:{}};return p(a)}return t.businessID==="rtc_call"||t.cmd?p(t):null}export{b as p};
|