You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
1.4 KiB
JavaScript
2 lines
1.4 KiB
JavaScript
1 year ago
|
import{d as k,r,a as v,o as x,am as A,m as B,v as R,g as V,c as q,e as n,H as d,af as p,j as _,t as w,_ as S}from"./index-93dfb385.js";import{A as T,t as D,a as b}from"./toke-90ac4c39.js";import{r as C}from"./inquiry-8a7adca2.js";const F={class:"voice_footer_cotent"},O=["src"],j=["src"],m="正在问诊......",E=k({name:"VoiceInquiry",__name:"voiceInquiry",emits:["changeType","save"],setup(G,{emit:f}){const t=r(m),l=r(null);let a=v({undefined:void 0}),u=v({undefined:void 0});const e=r("0");x(()=>{e.value="0",a=new T({sampleBits:16,sampleRate:16e3,numChannels:1}),g(),y()});function y(){u=setInterval(()=>{const s=a.getRecordAnalyseData();Array.from(s).some(i=>i>128)?e.value==="0"?e.value="1":e.value==="2"&&a.resume():e.value==="1"?(a.pause(),e.value="2"):e.value==="2"&&h()},500)}const g=()=>{a.start()};async function h(){e.value="0",clearInterval(u),a.stop();const s=a.getWAVBlob(),o=new FormData;o.append("file",s);const{data:i}=await C(o);t.value=i,e.value="3",I()}const c=f;A(l,()=>c("changeType",0));const I=()=>{(!t.value||t.value===m)&&B("问诊内容不能为空!",{type:"error"}),c("changeType",0),c("save",t.value)};return R(()=>{a.destroy()}),(s,o)=>(V(),q("div",{ref_key:"container",ref:l,class:"voiceInquiry"},[n("div",F,[d(n("img",{src:_(D),alt:""},null,8,O),[[p,e.value==="3"]]),d(n("img",{src:_(b),alt:""},null,8,j),[[p,e.value!=="3"]]),n("span",null,w(t.value),1)])],512))}});const U=S(E,[["__scopeId","data-v-0162c8e4"]]);export{U as default};
|