2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{d as ot,o as lt,L as rt,a as u,c as i,b as v,B as ut,e as o,ac as it,ad as ct,t as r,ae as S,af as dt,ag as ft,f as p,aj as ht,n as re,x as $e,F as ue,r as Ee,g as f,h as q,bo as vt,bp as pt,bq as yt,E as d,br as mt,bs as gt,bt as wt,i as qe,bu as _t,bv as kt,bw as It,bx as bt,by as St,U as X,bz as Tt,_ as Ct,aP as At,q as Nt,s as $t}from"./pywebview-3bFwh9Cg.js";import{z as Et}from"./zh-cn-CfXLYURP.js";/* empty css */import{c as qt}from"./categorized-timers-JPA-olTr.js";const Qt={class:"page-shell module-page"},Dt={class:"main-content"},Mt={class:"left-panel"},Pt={class:"input-zone"},Ft={class:"input-row"},Rt=["disabled"],Ot={key:0,class:"empty-candidates"},xt={key:1,class:"candidate-table-scroll"},Bt=["onClick"],Lt={class:"run-row"},Ut=["disabled"],Ht=["disabled"],jt={key:2,class:"queue-debug-card"},zt={class:"queue-debug-line"},Vt={key:0,class:"queue-debug-payload"},Jt={class:"right-panel"},Kt={class:"task-list-wrap"},Wt={class:"clean-result-summary"},Xt={class:"summary-card"},Gt={class:"summary-card"},Yt={class:"summary-card"},Zt={class:"summary-card"},es={key:0,class:"empty-tasks narrow"},ts=["onClick"],ss={class:"result-list-wrap"},as={key:0,class:"empty-tasks"},ns={key:0,class:"result-subsection"},os={class:"task-list"},ls={class:"left split-result-main"},rs=["title"],us={class:"files"},is={key:0,class:"files"},cs={key:1,class:"files"},ds={key:2,class:"files"},fs={class:"files"},hs={class:"files"},vs={class:"files"},ps={key:3,class:"files"},ys={class:"task-right"},ms=["onClick"],gs={key:1,class:"result-subsection"},ws={class:"task-list"},_s={class:"left split-result-main"},ks=["title"],Is={class:"files"},bs={key:0,class:"files"},Ss={key:1,class:"files"},Ts={key:2,class:"files"},Cs={class:"files"},As={class:"files"},Ns={key:3,class:"files"},$s={class:"files"},Es={key:4,class:"files"},qs={class:"task-right"},Qs=["onClick"],Ds=["onClick"],Qe=30,Ms=ot({__name:"BrandQueryAsinTab",setup(Fs){const O=f(""),G=f([]),x=f([]),m=f([]),k=f([]),Q=f({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),B=f(!1),L=f(!1),Y=f(!1),y=f(""),Z=f(""),h=f([]),c=f(null),T=f(null),C=f(!1),ee=f(!1),w=f({});let A=null;const N=qt("query-asin"),ie=q(()=>m.value.filter(e=>e.matched&&(e.queryAsins||[]).some(t=>t.asins?.length))),U=q(()=>k.value.filter(e=>!ge(e.taskStatus))),te=q(()=>k.value.filter(e=>ge(e.taskStatus))),se=q(()=>!!c.value||h.value.length>0),H=q(()=>C.value||se.value),ce=q(()=>C.value&&se.value);function j(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function de(){return`query-asin:matched:${j()}`}function fe(){return`query-asin:queue-state:${j()}`}function ae(){return`query-asin:start-times:${j()}`}function b(e){return`${(e.shopName||"").trim()}::${e.shopId||""}`}function z(e){return`${e.taskId??0}:${e.resultId??0}`}let _=!1;function he(e){return _?Promise.resolve():N.sleep("queue-wait",e)}function De(){N.clearCategory("queue-wait")}function ve(e){const t=e instanceof Error?e.message.toLowerCase():String(e||"").toLowerCase();return t.includes("network error")||t.includes("failed to fetch")||t.includes("timeout")||t.includes("503")||t.includes("502")||t.includes("504")||t.includes("500")||t.includes("load failed")}async function Me(e,t,n=20){let a=0;for(;;){if(_)throw new Error("component disposed");try{return await e()}catch(l){if(!ve(l)||a>=n-1)throw l;a+=1,t?.(a,n),await he(X())}}}function pe(e,t){return`query-asin:${e}:${t||"shop"}:${Date.now()}`}function D(e){if(!e)return"-";const t=new Date(e);if(Number.isNaN(t.getTime()))return e;const n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),l=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),g=String(t.getMinutes()).padStart(2,"0"),le=String(t.getSeconds()).padStart(2,"0");return`${n}-${a}-${l} ${s}:${g}:${le}`}function Pe(e){const t=(e||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[t]||t||"-"}function Fe(e){const t=(e.matchMessage||"").trim();return t||(e.matched&&e.matchStatus==="MATCHED"?"索引已命中,可推送到 Python 队列":e.matched?"已命中索引,请结合状态列确认":"未命中或未就绪,请检查店铺名")}function Re(e){const t=I(e),n=Math.max(...t.map(a=>a.asins?.length||0),1);return Array.from({length:n},(a,l)=>({shopName:l===0?e.shopName:"",countries:t.map(s=>({country:s.country,asin:s.asins?.[l]||""}))}))}function ye(e){const t=I(e),n=t.reduce((l,s)=>l+(s.asins?.length||0),0);return`${t.filter(l=>l.asins?.length).map(l=>l.country).join("、")||"无国家"},共 ${n} 个 ASIN`}function V(e){return(e||[]).map(t=>({country:(t.country||"").trim().toUpperCase(),asins:Array.from(new Set((t.asins||[]).map(n=>(n||"").trim().toUpperCase()).filter(Boolean)))})).filter(t=>t.country&&t.asins.length)}function I(e){return V(e?.queryAsins?.length?e.queryAsins:e?.query_asins)}function J(e){return I(e).some(t=>t.asins.length)}function me(e){const t=(e||"").trim(),n=[T.value,...h.value,...m.value],a=n.find(s=>(s?.shopName||"").trim()===t&&J(s)),l=n.find(s=>J(s));return I(a||l)}function $(e,t){const n=J(e)?I(e):I(t||void 0);return{...e,queryAsins:n.length?n:me(e.shopName)}}function ge(e){return e==="SUCCESS"||e==="FAILED"||e==="COMPLETED"}function we(e){return e==="SUCCESS"||e==="COMPLETED"?"已完成":e==="FAILED"?"失败":"执行中"}function _e(e){return e==="SUCCESS"||e==="COMPLETED"?"success":e==="FAILED"?"failed":"running"}function Oe(e){return!!(e.resultId&&(e.fileReady||e.downloadUrl))}function ke(){typeof window>"u"||window.localStorage.setItem(de(),JSON.stringify(m.value))}function xe(){try{const e=typeof window<"u"?window.localStorage.getItem(de()):null;m.value=e?JSON.parse(e):[]}catch{m.value=[]}}function E(){if(typeof window>"u")return;const e={pendingQueue:h.value,activeTaskId:c.value,activeQueueItem:T.value};window.localStorage.setItem(fe(),JSON.stringify(e))}function Ie(){if(!(typeof window>"u")){if(!Object.keys(w.value).length){window.localStorage.removeItem(ae());return}window.localStorage.setItem(ae(),JSON.stringify(w.value))}}function Be(){try{const e=typeof window<"u"?window.localStorage.getItem(fe()):null;if(!e)return;const t=JSON.parse(e);h.value=t.pendingQueue||[],c.value=t.activeTaskId??null,T.value=t.activeQueueItem??null}catch{h.value=[],c.value=null,T.value=null}}function Le(){try{const e=typeof window<"u"?window.localStorage.getItem(ae()):null,t=e?JSON.parse(e):{},n={};for(const[a,l]of Object.entries(t||{})){const s=Number(a);!Number.isFinite(s)||s<=0||typeof l!="string"||!l.trim()||(n[s]=l)}w.value=n}catch{w.value={}}}function Ue(e,t=new Date().toISOString()){!Number.isFinite(e)||e<=0||(w.value={...w.value,[e]:t},Ie())}function ne(e){if(!e||!(e in w.value))return;const t={...w.value};delete t[e],w.value=t,Ie()}function be(e){return e&&w.value[e]||""}function M(){c.value=null,T.value=null,E()}function P(){se.value||(C.value=!1,Y.value=!1,ee.value=!1,W(),E())}function He(e){const t=e instanceof Error?e.message:String(e||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(t)}function je(e){k.value=k.value.filter(t=>!(e.resultId!=null&&t.resultId===e.resultId||e.taskId!=null&&t.taskId===e.taskId))}function ze(e,t){const n=new Map;for(const a of e)n.set(b(a),a);for(const a of t)n.set(b(a),a);return Array.from(n.values())}async function F(){G.value=await vt()}async function K(){Q.value=await pt()}async function oe(){const e=await yt();k.value=(e.items||[]).map(t=>$(t))}async function R(){await Promise.all([K(),oe()])}function Se(){if(!c.value){P();return}if(k.value.some(n=>n.taskId===c.value))return;const t=c.value;M(),y.value=h.value.length?`任务 ${t} 已不存在,已跳过并继续剩余队列`:"当前任务已不存在,已释放本地队列状态",P()}function Ve(e){if(!e.length)return;const t=new Map(e.map(a=>[z(a),$(a)])),n=k.value.map(a=>{const l=t.get(z(a));if(!l)return $(a);const s=J(l)?I(l):I(a).length?I(a):me(l.shopName||a.shopName);return{...a,...l,queryAsins:s}});for(const a of e){const l=z(a);n.some(s=>z(s)===l)||n.push($(a))}k.value=n}async function Te(e){const t=Array.from(new Set((e&&e.length?e:U.value.map(a=>a.taskId??0)).filter(a=>Number.isFinite(a)&&a>0)));if(!t.length)return;const n=await Tt(t);Ve(n.items||[]),(n.missingTaskIds||[]).length&&(await oe(),Se())}function Je(){if(W(),_||!H.value)return;const e=async()=>{A=null,!(_||!H.value)&&(await Te(),!_&&H.value&&(A=N.setTimeout("history-poll",e,X()*2)))};A=N.setTimeout("history-poll",e,X()*2)}function W(){A&&(N.clearTimer("history-poll",A),A=null)}function Ke(e){x.value=e}async function Ce(){const e=O.value.trim();if(!e){d.warning("请输入店铺名");return}B.value=!0;try{await mt(e),O.value="",await Promise.all([F(),K()]),d.success("已加入备选区")}catch(t){d.error(t instanceof Error?t.message:"添加失败")}finally{B.value=!1}}async function We(e){try{await gt(e),x.value=x.value.filter(t=>t.id!==e),await Promise.all([F(),K()]),d.success("已删除")}catch(t){d.error(t instanceof Error?t.message:"删除失败")}}function Xe(e,t){const n=new Map;for(const a of e)n.set(b(a),a);for(const a of t)n.set(b(a),a);return Array.from(n.values())}async function Ge(){const e=x.value.map(t=>t.shop_name).filter(Boolean);if(!e.length){d.warning("请先勾选备选区店铺");return}L.value=!0;try{const t=await wt(e);m.value=Xe(m.value,t.items||[]),ke(),d.success(`本次返回 ${t.items?.length||0} 条匹配结果`)}catch(t){d.error(t instanceof Error?t.message:"匹配失败")}finally{L.value=!1}}function Ye(e){if(H.value){d.warning("队列执行中,请等待当前串行任务结束后再调整");return}m.value=m.value.filter(t=>b(t)!==b(e)),ke()}function Ze(e){return{shopName:e.shopName,matched:e.matched,shopId:e.shopId,platform:e.platform,companyName:e.companyName,matchStatus:e.matchStatus,matchMessage:e.matchMessage,queryAsins:V(e.queryAsins)}}function et(e,t){const n=pe(e,t.shopName);return{type:"query-asin-run",ts:Date.now(),data:{taskId:e,user_id:Number(j())||0,source:"frontend-vue-query-asin",submissionId:n,items:[{shopName:t.shopName,submissionId:n,shopId:t.shopId,platform:t.platform,companyName:t.companyName,matched:t.matched,matchStatus:t.matchStatus,matchMessage:t.matchMessage,queryAsins:V(t.queryAsins)}],query_asins:V(t.queryAsins),query_asin_rows:Re(t)}}}function tt(e){return k.value.find(t=>t.taskId===e)}async function st(e){let t=0;for(;;){if(_)return"STOPPED";try{if(await Te([e]),c.value!==e)return"FAILED";t>0&&(y.value=`任务 ${e} 后端已恢复,继续等待执行结果...`),t=0;const a=tt(e)?.taskStatus||"";if(a==="SUCCESS"||a==="FAILED"||a==="COMPLETED")return a}catch(n){if(!ve(n))throw n;if(t+=1,t>=Qe)throw new Error(`任务 ${e} 等待后端恢复超时,请稍后刷新查看状态`);y.value=`任务 ${e} 执行中,正在等待后端服务恢复(${t}/${Qe})...`}await he(X())}}async function Ae(){if(!(_||C.value)){C.value=!0,Y.value=!0,Je();try{const e=qe();if(!e?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");for(;!_&&(c.value||h.value.length);){if(c.value){const g=await st(c.value);y.value=h.value.length>0?`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"},自动继续下一个(剩余 ${h.value.length} 条)`:`任务 ${c.value} ${g==="SUCCESS"?"已完成":"执行失败"}`,M();continue}const t=h.value.shift();if(E(),!t)break;const n=await Me(()=>_t([Ze(t)]),(g,le)=>{y.value=`后端服务暂时不可用,正在重试创建任务(${g}/${le})...`}),a=n.items?.[0]?$(n.items[0],t):void 0;if(!a?.taskId||!a.resultId)throw new Error("后端未返回有效任务标识");c.value=n.taskId,T.value=$(t,a),E(),await R();const l=et(n.taskId,a);Z.value=JSON.stringify(l,null,2);const s=await e.enqueue_json(l);if(!s?.success){await kt(n.taskId,{shops:[{shopName:a.shopName||t.shopName||"",error:s?.error||`任务 ${n.taskId} 推送失败`,shopDone:!0,submissionId:pe(n.taskId,a.shopName||t.shopName)}]}),await R(),y.value=`任务 ${n.taskId} 推送失败,已自动继续下一个任务`,M();continue}Ue(n.taskId),y.value=h.value.length>0?`任务 ${n.taskId} 已入队,等待完成后自动继续下一个(剩余 ${h.value.length} 条)`:`任务 ${n.taskId} 已入队,等待执行完成`}y.value="串行队列已执行完成",await R(),d.success("查询ASIN队列已按顺序执行完成")}catch(e){if(_)return;const t=e instanceof Error?e.message:"队列执行失败";y.value=t,d.error(t),await R()}finally{C.value=!1,Y.value=!1,W(),E()}}}async function at(){ee.value=!0,P();const e=ie.value;if(!e.length){d.warning("请先匹配可用店铺");return}h.value=ze(h.value,e),E(),y.value=`已加入 ${e.length} 条店铺,开始串行执行`,await Ae()}async function nt(e){if(!e.resultId)return;const t=qe();if(!t?.save_file_from_url_new){d.error("当前客户端未提供下载能力");return}const n=It(e.resultId),a=e.outputFilename||`${e.shopName||"result"}.xlsx`,l=await t.save_file_from_url_new(n,a);l.success?d.success(`已保存: ${l.path||a}`):l.error&&l.error!=="用户取消"&&d.error(l.error)}async function Ne(e){try{if(e.taskId)await bt(e.taskId),c.value===e.taskId&&M(),ne(e.taskId);else if(e.resultId)await St(e.resultId),ne(e.taskId);else throw new Error("缺少可删除的任务标识");await Promise.all([F(),R()]),P(),d.success("已删除")}catch(t){if(He(t)){e.taskId&&c.value===e.taskId&&M(),ne(e.taskId),je(e),await F(),P(),d.success("后端记录已不存在,已同步移除本地记录");return}d.error(t instanceof Error?t.message:"删除失败")}}return lt(async()=>{xe(),Be(),Le(),await Promise.all([F(),K(),oe()]),Se(),(c.value||h.value.length)&&(ee.value=!0,y.value=c.value!=null?`检测到未完成队列,继续等待任务 ${c.value} 完成并自动接续后续店铺`:`检测到未完成队列,继续执行剩余 ${h.value.length} 条店铺`,Ae())}),rt(()=>{_=!0,W(),De(),N.clearScope()}),(e,t)=>{const n=ct,a=dt,l=ft;return u(),i("div",Qt,[v(ut,{active:"query-asin"}),o("div",Dt,[o("aside",Mt,[t[3]||(t[3]=o("div",{class:"section-title"},"店铺输入",-1)),o("div",Pt,[t[1]||(t[1]=o("div",{class:"hint"}," 左侧负责录入店铺并加入备选区,确认命中后推送到 Python 队列。查询ASIN按店铺串行执行:上一个任务完成后会自动开始下一个,失败也会继续下一个。 ",-1)),o("div",Ft,[v(n,{modelValue:O.value,"onUpdate:modelValue":t[0]||(t[0]=s=>O.value=s),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:it(Ce,["enter"])},null,8,["modelValue"]),o("button",{type:"button",class:"opt-btn",disabled:B.value,onClick:Ce},r(B.value?"添加中...":"添加"),9,Rt)])]),t[4]||(t[4]=o("div",{class:"section-title"},"备选区",-1)),G.value.length?(u(),i("div",xt,[v(l,{data:G.value,"row-key":"id",height:"260",class:"candidate-table",onSelectionChange:Ke},{default:S(()=>[v(a,{type:"selection",width:"42"}),v(a,{prop:"shop_name",label:"店铺名","min-width":"140","show-overflow-tooltip":""}),v(a,{label:"操作",width:"72",align:"center"},{default:S(({row:s})=>[o("button",{type:"button",class:"link-danger",onClick:g=>We(s.id)}," 删除 ",8,Bt)]),_:1})]),_:1},8,["data"])])):(u(),i("div",Ot," 暂无备选店铺,请先输入并添加 ")),o("div",Lt,[o("button",{type:"button",class:"btn-run",disabled:L.value,onClick:Ge},r(L.value?"匹配中...":"匹配店铺"),9,Ut),o("button",{type:"button",class:"btn-run btn-queue",disabled:ce.value||!ie.value.length,onClick:at},r(ce.value?"串行执行中...":"推送到 Python 队列"),9,Ht)]),t[5]||(t[5]=o("p",{class:"loading-msg"}," 当前页面会按店铺串行推送任务,并在任务成功或失败后自动接续下一个任务。服务端临时重启时会自动重试查询状态,恢复后继续后续店铺。 ",-1)),y.value?(u(),i("div",jt,[t[2]||(t[2]=o("div",{class:"section-title queue-debug-title"},"队列状态",-1)),o("div",zt,r(y.value),1),Z.value?(u(),i("pre",Vt,r(Z.value),1)):p("",!0)])):p("",!0)]),o("section",Jt,[t[14]||(t[14]=o("div",{class:"panel-header"},"匹配与任务",-1)),o("div",Kt,[o("div",Wt,[o("div",Xt,[t[6]||(t[6]=o("span",{class:"summary-label"},"备选店铺",-1)),o("strong",null,r(Q.value.candidateCount),1)]),o("div",Gt,[t[7]||(t[7]=o("span",{class:"summary-label"},"已处理任务",-1)),o("strong",null,r(Q.value.processedTaskCount),1)]),o("div",Yt,[t[8]||(t[8]=o("span",{class:"summary-label"},"成功任务",-1)),o("strong",null,r(Q.value.successTaskCount),1)]),o("div",Zt,[t[9]||(t[9]=o("span",{class:"summary-label"},"失败任务",-1)),o("strong",null,r(Q.value.failedTaskCount),1)])]),t[13]||(t[13]=o("div",{class:"subsection-title"},"匹配结果",-1)),m.value.length?(u(),ht(l,{key:1,data:m.value,"row-key":b,"highlight-current-row":!1,class:"result-table match-table"},{default:S(()=>[v(a,{prop:"shopName",label:"店铺名","min-width":"120"}),v(a,{label:"匹配",width:"72",align:"center"},{default:S(({row:s})=>[o("span",{class:re(s.matched?"ok":"fail")},r(s.matched?"是":"否"),3)]),_:1}),v(a,{prop:"shopId",label:"店铺 ID","min-width":"120","show-overflow-tooltip":""}),v(a,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),v(a,{prop:"companyName",label:"公司","min-width":"120","show-overflow-tooltip":""}),v(a,{label:"状态",width:"110","show-overflow-tooltip":""},{default:S(({row:s})=>[$e(r(Pe(s.matchStatus)),1)]),_:1}),v(a,{label:"说明","min-width":"180","show-overflow-tooltip":""},{default:S(({row:s})=>[$e(r(Fe(s)),1)]),_:1}),v(a,{label:"操作",width:"72",align:"center"},{default:S(({row:s})=>[o("button",{type:"button",class:"link-danger",onClick:g=>Ye(s)}," 删除 ",8,ts)]),_:1})]),_:1},8,["data"])):(u(),i("div",es," 完成“匹配店铺”后,这里会展示匹配结果。 ")),o("div",ss,[t[12]||(t[12]=o("div",{class:"result-list-header"},[o("span",null,"任务记录")],-1)),!U.value.length&&!te.value.length?(u(),i("div",as," 暂无任务记录。推送到 Python 队列后,这里会展示当前任务和历史任务。 ")):(u(),i(ue,{key:1},[U.value.length?(u(),i("div",ns,[t[10]||(t[10]=o("div",{class:"result-subsection-title"},"当前任务",-1)),o("ul",os,[(u(!0),i(ue,null,Ee(U.value,s=>(u(),i("li",{key:`${s.resultId}-${s.taskId}`,class:"task-item"},[o("div",ls,[o("span",{class:"id",title:s.shopName||""},r(s.shopName||"-"),9,rs),o("div",us,"任务 ID: "+r(s.taskId??"-"),1),s.resultId?(u(),i("div",is," 结果 ID: "+r(s.resultId),1)):p("",!0),s.shopId?(u(),i("div",cs," 店铺 ID: "+r(s.shopId),1)):p("",!0),s.platform?(u(),i("div",ds," 平台: "+r(s.platform),1)):p("",!0),o("div",fs," 开始时间: "+r(D(be(s.taskId))),1),o("div",hs," 创建时间: "+r(D(s.createdAt)),1),o("div",vs," ASIN结构: "+r(ye(s)),1),s.error?(u(),i("div",ps," 错误: "+r(s.error),1)):p("",!0)]),o("div",ys,[o("span",{class:re(["status",_e(s.taskStatus)])},r(we(s.taskStatus)),3),o("button",{type:"button",class:"btn-delete",onClick:g=>Ne(s)}," 删除 ",8,ms)])]))),128))])])):p("",!0),te.value.length?(u(),i("div",gs,[t[11]||(t[11]=o("div",{class:"result-subsection-title"},"历史任务",-1)),o("ul",ws,[(u(!0),i(ue,null,Ee(te.value,s=>(u(),i("li",{key:`${s.resultId}-${s.taskId}`,class:"task-item"},[o("div",_s,[o("span",{class:"id",title:s.shopName||""},r(s.shopName||"-"),9,ks),o("div",Is,"任务 ID: "+r(s.taskId??"-"),1),s.resultId?(u(),i("div",bs," 结果 ID: "+r(s.resultId),1)):p("",!0),s.shopId?(u(),i("div",Ss," 店铺 ID: "+r(s.shopId),1)):p("",!0),s.platform?(u(),i("div",Ts," 平台: "+r(s.platform),1)):p("",!0),o("div",Cs," 开始时间: "+r(D(be(s.taskId))),1),o("div",As," 创建时间: "+r(D(s.createdAt)),1),s.finishedAt?(u(),i("div",Ns," 完成时间: "+r(D(s.finishedAt)),1)):p("",!0),o("div",$s," ASIN结构: "+r(ye(s)),1),s.error?(u(),i("div",Es," 错误: "+r(s.error),1)):p("",!0)]),o("div",qs,[o("span",{class:re(["status",_e(s.taskStatus)])},r(we(s.taskStatus)),3),Oe(s)?(u(),i("button",{key:0,type:"button",class:"archive",onClick:g=>nt(s)}," 下载结果 ",8,Qs)):p("",!0),o("button",{type:"button",class:"btn-delete",onClick:g=>Ne(s)}," 删除 ",8,Ds)])]))),128))])])):p("",!0)],64))])])])])])}}}),Ps=Ct(Ms,[["__scopeId","data-v-5842341e"]]);At.locale("zh-cn");Nt(Ps).use($t,{locale:Et}).mount("#app");
|