2 lines
2.5 KiB
JavaScript
Executable File
2 lines
2.5 KiB
JavaScript
Executable File
import{d as l}from"./dayjs-DG77mNTn.js";function r(i){if(i==null||i==="")return;const s=typeof i=="string"&&/^\d+$/.test(i.trim())?parseInt(i.trim(),10):Number(i);if(!(!Number.isFinite(s)||s<=0))return s>1e12?l(s).format("YYYY-MM-DD HH:mm:ss"):l.unix(s).format("YYYY-MM-DD HH:mm:ss")}function p(i){const s=i.call_type??i.callType??2,t=s===2?"视频":s===1?"语音通话":"通话";let e=String(i.cmd||i.action||"").toLowerCase();if(!e){const n=Number(i.actionType??i.action_type??i.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}`:""),c=Number(i.duration??i.call_duration),m=c>0&&(o==="已结束"||o==="已挂断")?` (${Math.floor(c/60)}分${c%60}秒)`:"",f=o?`${t} · ${o}${m}`:t,u=[];if(i.invitee&&u.push(`对方: ${i.invitee}`),i.groupID&&u.push(`群组: ${i.groupID}`),!o){const n=JSON.stringify(i).replace(/"/g,"");u.push(`(原始参数: ${n})`)}return{main:f,sub:u.length?u.join(","):void 0,tag:"通话"}}function g(i){const s=i.trim();if(!s.startsWith("{"))return null;let t;try{t=JSON.parse(s)}catch{return null}if(!("businessID"in t)&&!("cmd"in t))return null;if(t.businessID==="doctor_entered_consult_room")return{main:"医生已进入诊室",sub:r(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=r(t.time);return a&&e.push(a),{main:"患者进入聊天",sub:e.length?e.join(" · "):void 0,tag:"诊室"}}if(t.businessID==="patient_closed_chat"){const e=[];t.patientName&&e.push(`患者:${String(t.patientName)}`),t.patientId!=null&&t.patientId!==""&&e.push(`患者 ID:${String(t.patientId)}`);const a=r(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:r(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{g as p};
|