3 lines
3.6 KiB
JavaScript
3 lines
3.6 KiB
JavaScript
import{N as R,a as d,j as h}from"./vendor-core.B6UiYhU_.js";import{b as O}from"./vendor-utils.CO3CyGpV.js";import{n as I,o as w}from"./index.B8XI8FQW.js";const A="/roa2web/api/data-entry",m=O.create({baseURL:A,headers:{"Content-Type":"application/json"}});m.interceptors.request.use(e=>{var l;if(I()){const i=new AbortController;return i.abort(),e.signal=i.signal,e}const n=localStorage.getItem("access_token");n&&(e.headers.Authorization=`Bearer ${n}`);const o=JSON.parse(localStorage.getItem("user")||"{}"),r=o.username,c=localStorage.getItem("last_server_id");let a=null;if(r){const i=c?`selected_company_${r}_${c}`:`selected_company_${r}`,p=localStorage.getItem(i);if(p)try{const u=JSON.parse(p);a=u.id_firma,console.log(`[API] Using company from ${i}:`,u.name||u.id_firma)}catch(u){console.error("Failed to parse saved company:",u)}}return a||(a=(l=o.companies)==null?void 0:l[0]),a&&(e.headers["X-Selected-Company"]=a),e.data instanceof FormData&&delete e.headers["Content-Type"],e});m.interceptors.response.use(e=>(console.log("✅ API Response:",e.config.url,e.status),e),e=>{var n,o,r;return e.code!=="ERR_CANCELED"&&console.error("❌ API Error:",{url:(n=e.config)==null?void 0:n.url,method:(o=e.config)==null?void 0:o.method,code:e.code,message:e.message}),((r=e.response)==null?void 0:r.status)===401&&w(),Promise.reject(e)});const E=R("ocrSettings",()=>{const e=d("doctr_plus"),n=d(["tesseract","doctr","doctr_plus","paddleocr"]),o=d(!1),r=d(null),c=d(!1),a=d({summary:[],stats:null,history:[],historyTotal:0}),l=d(!1),i=h(()=>o.value),p=h(()=>!!r.value);async function u(){if(!c.value){o.value=!0,r.value=null;try{const t=await m.get("/settings/ocr-preference");e.value=t.data.preferred_engine,n.value=t.data.available_engines,c.value=!0,console.log("[OCRSettings] Loaded preference:",e.value)}catch(t){console.error("[OCRSettings] Failed to load preference:",t),r.value=t.message,e.value="doctr_plus"}finally{o.value=!1}}}async function S(t){o.value=!0,r.value=null;try{const s=await m.post("/settings/ocr-preference",{preferred_engine:t});e.value=s.data.preferred_engine,console.log("[OCRSettings] Saved preference:",e.value)}catch(s){throw console.error("[OCRSettings] Failed to save preference:",s),r.value=s.message,s}finally{o.value=!1}}async function f(t=30){l.value=!0;try{const s=await m.get("/metrics/ocr/summary",{params:{days:t}});a.value.summary=s.data,console.log("[OCRSettings] Loaded metrics summary:",a.value.summary.length,"engines")}catch(s){console.error("[OCRSettings] Failed to load metrics summary:",s)}finally{l.value=!1}}async function y(t=30){try{const s=await m.get("/metrics/ocr/stats",{params:{days:t}});a.value.stats=s.data,console.log("[OCRSettings] Loaded metrics stats:",a.value.stats)}catch(s){console.error("[OCRSettings] Failed to load metrics stats:",s)}}async function v(t=50,s=0){try{const g=await m.get("/metrics/ocr/history",{params:{limit:t,offset:s}});a.value.history=g.data.items,a.value.historyTotal=g.data.total,console.log("[OCRSettings] Loaded metrics history:",a.value.history.length,"items")}catch(g){console.error("[OCRSettings] Failed to load metrics history:",g)}}async function _(t=30){l.value=!0;try{await Promise.all([f(t),y(t),v(20)])}finally{l.value=!1}}function C(){e.value="doctr_plus",n.value=["tesseract","doctr","doctr_plus","paddleocr"],o.value=!1,r.value=null,c.value=!1,a.value={summary:[],stats:null,history:[],historyTotal:0}}return{preferredEngine:e,availableEngines:n,loading:o,error:r,initialized:c,metrics:a,metricsLoading:l,isLoading:i,hasError:p,loadPreference:u,setPreference:S,loadMetricsSummary:f,loadMetricsStats:y,loadMetricsHistory:v,loadAllMetrics:_,$reset:C}});export{m as a,E as u};
|
|
//# sourceMappingURL=ocrSettingsStore.B3n_bOhs.js.map
|