import{d as ie,o as ue,M as ce,a as i,c as u,b as m,B as de,e as a,ad as Mt,ae as fe,t as r,af as S,ag as pe,ah as he,F as W,r as ut,w as me,v as ve,f as v,ak as ye,n as ct,y as At,g as p,h as M,b9 as _e,ba as we,bb as ge,bc as ke,E as d,bd as be,be as Se,bf as Ie,bg as Te,bh as Ce,i as Ee,bi as De,bj as Pe,bk as Ne,s as $e,bl as Re,bm as Me,V as X,bn as Ae,_ as Le,aQ as qe,q as Be,u as xe}from"./java-modules-B8c-YG5x.js";import{z as Ue}from"./zh-cn-CscLo6na.js";/* empty css */import{c as Fe}from"./categorized-timers-JPA-olTr.js";const He={class:"page-shell module-page"},Oe={class:"main-content"},Ve={class:"left-panel"},Qe={class:"input-zone"},Ke={class:"input-row"},ze=["disabled"],Ge={key:0,class:"empty-candidates"},je={key:1,class:"candidate-table-scroll"},Je=["onClick"],We={class:"condition-panel"},Xe={class:"condition-input-row"},Ye=["disabled"],Ze={key:0,class:"empty-conditions"},ts={key:1,class:"condition-list"},es={class:"condition-check"},ss=["value"],as=["title"],ns=["onClick"],os={class:"run-row"},ls=["disabled"],rs=["disabled"],is={key:2,class:"queue-debug-card"},us={class:"queue-debug-line"},cs={key:0,class:"queue-debug-payload"},ds={class:"right-panel"},fs={class:"task-list-wrap"},ps={class:"clean-result-summary"},hs={class:"summary-card"},ms={class:"summary-card"},vs={class:"summary-card"},ys={class:"summary-card"},_s={key:0,class:"empty-tasks narrow"},ws=["onClick"],gs={class:"result-list-wrap"},ks={key:0,class:"empty-tasks"},bs={key:0,class:"result-subsection"},Ss={class:"task-list"},Is={class:"left split-result-main"},Ts=["title"],Cs={class:"files"},Es={key:0,class:"files"},Ds={key:1,class:"files"},Ps={key:2,class:"files"},Ns={class:"files"},$s={class:"files"},Rs={key:3,class:"files"},Ms={class:"task-right"},As=["onClick"],Ls={key:1,class:"result-subsection"},qs={class:"task-list"},Bs={class:"left split-result-main"},xs=["title"],Us={class:"files"},Fs={key:0,class:"files"},Hs={key:1,class:"files"},Os={key:2,class:"files"},Vs={class:"files"},Qs={key:3,class:"files"},Ks={class:"files"},zs={key:4,class:"files"},Gs={class:"task-right"},js=["onClick"],Js=["onClick"],Lt=30,Ws=ie({__name:"BrandPatrolDeleteTab",setup(Ys){const dt=["德国","英国","法国","意大利","西班牙"],A=p(""),L=p(""),Y=p([]),q=p([]),D=p([]),_=p([]),w=p([]),k=p([]),P=p({candidateCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),B=p(!1),x=p(!1),U=p(!1),F=p(!1),y=p(""),Z=p(""),h=p(null),H=p(!1);let I=null;const T=Fe("patrol-delete"),tt=M(()=>w.value.filter(t=>t.matched)),ft=M(()=>Vt(k.value)),O=M(()=>ft.value.filter(t=>!gt(t.taskStatus))),et=M(()=>ft.value.filter(t=>gt(t.taskStatus))),V=M(()=>H.value||!!h.value);function st(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function pt(){return`patrol-delete:matched:${st()}`}function ht(){return`patrol-delete:queue-state:${st()}`}function N(t){return`${(t.shopName||"").trim()}::${t.shopId||""}`}function Q(t){return`${t.taskId??0}:${t.resultId??0}`}function mt(t){return`task:${t.taskId??t.resultId??0}`}let g=!1;function vt(t){return g?Promise.resolve():T.sleep("queue-wait",t)}function qt(){T.clearCategory("queue-wait")}function yt(t){const e=t instanceof Error?t.message.toLowerCase():String(t||"").toLowerCase();return e.includes("network error")||e.includes("failed to fetch")||e.includes("timeout")||e.includes("503")||e.includes("502")||e.includes("504")||e.includes("500")||e.includes("load failed")}async function Bt(t,e,o=20){let n=0;for(;;){if(g)throw new Error("component disposed");try{return await t()}catch(l){if(!yt(l)||n>=o-1)throw l;n+=1,e?.(n,o),await vt(X())}}}function xt(t,e){return`patrol-delete:${t}:${e||"shop"}:${Date.now()}`}function at(t){if(!t)return"-";const e=new Date(t);if(Number.isNaN(e.getTime()))return t;const o=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),l=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),f=String(e.getMinutes()).padStart(2,"0"),c=String(e.getSeconds()).padStart(2,"0");return`${o}-${n}-${l} ${s}:${f}:${c}`}function Ut(t){const e=(t||"").trim();return{MATCHED:"已匹配",PENDING:"待匹配",CONFLICT:"需人工确认",INDEX_STALE:"索引过期"}[e]||e||"-"}function Ft(t){const e=(t.matchMessage||"").trim();return e||(t.matched&&t.matchStatus==="MATCHED"?"索引已命中,可推送到 Python 队列":t.matched?"已命中索引,请结合状态列确认":"未命中或未就绪,请检查店铺名")}function Ht(){return dt.map(t=>({country:t,rows:[{status:"全部",quantity:"",deleteQuantity:"",processStatus:""}]}))}function Ot(){return dt.map(t=>({country:t,ratio:""}))}function _t(t){const e=t.countrySections||[],o=t.cartRatios||[],n=Math.max(...e.map(l=>l.rows.length),1);return Array.from({length:n},(l,s)=>({shopName:s===0?t.shopName:"",countries:e.map(f=>{const c=f.rows[s];return{country:f.country,status:c?.status||"",quantity:c?.quantity||"",deleteQuantity:c?.deleteQuantity||"",processStatus:c?.processStatus||""}}),cartRatios:s===0?o.map(f=>({country:f.country,ratio:f.ratio})):[]}))}function wt(t){return`${new Set([...(t.countrySections||[]).map(o=>o.country).filter(Boolean),...(t.cartRatios||[]).map(o=>o.country).filter(Boolean)]).size||0} 个国家,含状态数据和购物车比例`}function b(t){return Array.from(new Set(t.map(e=>e==null?"":String(e).trim()).filter(Boolean))).join("、")}function Vt(t){const e=new Map;for(const o of t||[]){const n=String(o.taskId??`result:${o.resultId??Math.random()}`),l=e.get(n)||[];l.push(o),e.set(n,l)}return Array.from(e.values()).map(o=>{const n=o.find(s=>St(s))||o.find(s=>s.taskStatus)||o[0],l=b(o.map(s=>s.error));return{...n,shopName:b(o.map(s=>s.shopName))||n.shopName,shopId:b(o.map(s=>s.shopId))||n.shopId,error:l||n.error,__groupItems:o}})}function C(t){return t.__groupItems||[t]}function K(t){return b(C(t).map(e=>e.shopName))||"-"}function z(t){return b(C(t).map(e=>e.resultId))}function G(t){return b(C(t).map(e=>e.shopId))}function j(t){return b(C(t).map(e=>e.error))}function gt(t){return t==="SUCCESS"||t==="FAILED"||t==="COMPLETED"}function kt(t){return t==="SUCCESS"||t==="COMPLETED"?"已完成":t==="FAILED"?"失败":"执行中"}function bt(t){return t==="SUCCESS"||t==="COMPLETED"?"success":t==="FAILED"?"failed":"running"}function St(t){return C(t).some(e=>!!(e.resultId&&(e.fileReady||e.downloadUrl)))}function It(){typeof window>"u"||window.localStorage.setItem(pt(),JSON.stringify(w.value))}function Qt(){try{const t=typeof window<"u"?window.localStorage.getItem(pt()):null;w.value=t?JSON.parse(t):[]}catch{w.value=[]}}function nt(){if(typeof window>"u")return;const t={activeTaskId:h.value};window.localStorage.setItem(ht(),JSON.stringify(t))}function Kt(){try{const t=typeof window<"u"?window.localStorage.getItem(ht()):null;if(!t)return;const e=JSON.parse(t);h.value=e.activeTaskId??null}catch{h.value=null}}function E(){h.value=null,nt()}function zt(t){const e=t instanceof Error?t.message:String(t||"");return/记录不存在|任务不存在|不存在|已删除|not\s*found|404/i.test(e)}function ot(t){const e=N(t);w.value=w.value.filter(o=>N(o)!==e),It()}function Tt(t){k.value=k.value.filter(e=>!(t.resultId!=null&&e.resultId===t.resultId||t.taskId!=null&&e.taskId===t.taskId))}async function $(){Y.value=await _e()}async function lt(){D.value=await we();const t=new Set(D.value.map(e=>e.id));_.value=_.value.filter(e=>t.has(e))}async function R(){P.value=await ge()}async function rt(){const t=await ke();k.value=t.items||[]}async function J(){await Promise.all([R(),rt()])}function Ct(t){if(!t.length)return;const e=new Map(t.map(n=>[Q(n),n])),o=k.value.map(n=>{const l=e.get(Q(n));return l?{...n,...l,countrySections:l.countrySections||n.countrySections||[],cartRatios:l.cartRatios||n.cartRatios||[]}:n});for(const n of t){const l=Q(n);o.some(s=>Q(s)===l)||o.push(n)}k.value=o}function Gt(t){Ct(t)}async function Et(t){const e=Array.from(new Set((t&&t.length?t:O.value.map(n=>n.taskId??0)).filter(n=>Number.isFinite(n)&&n>0)));if(!e.length)return[];const o=await Ae(e);return Ct(o.items||[]),(o.missingTaskIds||[]).length&&await rt(),o.missingTaskIds||[]}function jt(){if(it(),g||!V.value)return;const t=async()=>{I=null,!(g||!V.value)&&(await Et(),!g&&V.value&&(I=T.setTimeout("history-poll",t,X()*2)))};I=T.setTimeout("history-poll",t,X()*2)}function it(){I&&(T.clearTimer("history-poll",I),I=null)}function Jt(t){q.value=t}async function Dt(){const t=A.value.trim();if(!t){d.warning("请输入店铺名");return}B.value=!0;try{await be(t),A.value="",await Promise.all([$(),R()]),d.success("已加入备选区")}catch(e){d.error(e instanceof Error?e.message:"添加失败")}finally{B.value=!1}}async function Pt(){const t=L.value.trim();if(!t){d.warning("请输入删除条件");return}x.value=!0;try{const e=await Se(t);L.value="",await lt(),e?.id&&!_.value.includes(e.id)&&(_.value=[..._.value,e.id]),d.success("删除条件已保存")}catch(e){d.error(e instanceof Error?e.message:"保存失败")}finally{x.value=!1}}async function Wt(t){try{await Ie(t),_.value=_.value.filter(e=>e!==t),await lt(),d.success("删除条件已删除")}catch(e){d.error(e instanceof Error?e.message:"删除失败")}}async function Xt(t){try{await Te(t),q.value=q.value.filter(e=>e.id!==t),await Promise.all([$(),R()]),d.success("已删除")}catch(e){d.error(e instanceof Error?e.message:"删除失败")}}function Yt(t,e){const o=new Map;for(const n of t)o.set(N(n),n);for(const n of e)o.set(N(n),n);return Array.from(o.values())}async function Zt(){const t=q.value.map(e=>e.shop_name).filter(Boolean);if(!t.length){d.warning("请先勾选备选区店铺");return}U.value=!0;try{const e=await Ce(t);w.value=Yt(w.value,e.items||[]),It(),d.success(`本次返回 ${e.items?.length||0} 条匹配结果`)}catch(e){d.error(e instanceof Error?e.message:"匹配失败")}finally{U.value=!1}}function te(t){ot(t),d.success("已从匹配结果移除")}function ee(t){return{shopName:t.shopName,matched:t.matched,shopId:t.shopId,platform:t.platform,companyName:t.companyName,matchStatus:t.matchStatus,matchMessage:t.matchMessage,countrySections:Ht(),cartRatios:Ot()}}function se(){const t=new Set(_.value);return D.value.filter(e=>t.has(e.id)).map(e=>({id:e.id,conditionText:e.conditionText}))}function ae(t,e){const o=e[0],n=se();return{type:"patrol-delete-run",ts:Date.now(),data:{taskId:t,user_id:Number(st())||0,source:"frontend-vue-patrol-delete",delete_conditions:n,deleteConditions:n,items:e.map(l=>({shopName:l.shopName,shopId:l.shopId,platform:l.platform,companyName:l.companyName,matched:l.matched,matchStatus:l.matchStatus,matchMessage:l.matchMessage,countrySections:l.countrySections||[],cartRatios:l.cartRatios||[]})),template_rows:o?_t(o):[],shop_template_rows:e.map(l=>({shopName:l.shopName,shopId:l.shopId,templateRows:_t(l)})),country_sections:o?.countrySections||[],cart_ratios:o?.cartRatios||[]}}}function ne(t){return k.value.find(e=>e.taskId===t)}async function Nt(t){let e=0;for(;;){if(g)return"STOPPED";if(h.value!==t)return"DELETED";try{if((await Et([t])).includes(t))return E(),"DELETED";if(h.value!==t)return"DELETED";e>0&&(y.value=`任务 ${t} 后端已恢复,继续等待执行结果...`),e=0;const l=ne(t)?.taskStatus||"";if(l==="SUCCESS"||l==="FAILED"||l==="COMPLETED")return l}catch(o){if(!yt(o))throw o;if(e+=1,e>=Lt)throw new Error(`任务 ${t} 等待后端恢复超时,请稍后刷新查看状态`);y.value=`任务 ${t} 执行中,正在等待后端服务恢复(${e}/${Lt})...`}await vt(X())}}async function $t(){if(!(g||H.value)){H.value=!0,F.value=!0,jt();try{const t=Ee();if(!t?.enqueue_json)throw new Error("当前客户端未提供 enqueue_json");if(h.value){const c=await Nt(h.value);y.value=c==="DELETED"?"任务已删除":`任务 ${h.value} ${c==="SUCCESS"?"已完成":"执行失败"}`,E();return}const e=tt.value;if(!e.length){d.warning("请先匹配可用店铺");return}const o=await Bt(()=>De(e.map(ee)),(c,re)=>{y.value=`后端服务暂时不可用,正在重试创建任务(${c}/${re})...`}),n=o.items||[];if(!o.taskId||!n.length||n.some(c=>!c.taskId||!c.resultId))throw new Error("后端未返回有效任务标识");h.value=o.taskId,nt(),Gt(n),R();const l=ae(o.taskId,n);Z.value=JSON.stringify(l,null,2);const s=await t.enqueue_json(l);if(!s?.success){await Pe(o.taskId,{shops:n.map(c=>({shopName:c.shopName||"",error:s?.error||`任务 ${o.taskId} 推送失败`,countrySections:c.countrySections||[],cartRatios:c.cartRatios||[],shopDone:!0,submissionId:xt(o.taskId,c.shopName),chunkIndex:1,chunkTotal:1}))});for(const c of e)ot(c);await J(),y.value=`任务 ${o.taskId} 推送失败`,E();return}for(const c of e)ot(c);y.value=`任务 ${o.taskId} 已入队,共 ${n.length} 个店铺,等待执行完成`;const f=await Nt(o.taskId);y.value=`任务 ${o.taskId} ${f==="SUCCESS"?"已完成":f==="DELETED"?"已删除":"执行失败"}`,E(),await J(),d.success("巡店删除任务已完成")}catch(t){if(g)return;const e=t instanceof Error?t.message:"队列执行失败";y.value=e,d.error(e),await J()}finally{H.value=!1,F.value=!1,it(),nt()}}}async function oe(){const t=tt.value;if(!t.length){d.warning("请先匹配可用店铺");return}y.value=`开始创建任务,共 ${t.length} 个店铺`,await $t()}async function le(t){const e=C(t).find(s=>!!(s.resultId&&(s.fileReady||s.downloadUrl)));if(!e?.resultId)return;const o=Ne(e.resultId),n=e.outputFilename||`${t.shopName||"patrol-delete-result"}.xlsx`,l=await $e(o,n,`patrol-delete:${e.resultId}`);l.success?d.success(`已保存: ${l.path||n}`):l.error&&l.error!=="用户取消"&&d.error(l.error)}async function Rt(t){try{if(t.taskId)await Re(t.taskId),h.value===t.taskId&&E();else if(t.resultId)await Me(t.resultId);else throw new Error("缺少可删除的任务标识");Tt(t),await Promise.allSettled([$(),J()]),d.success("已删除")}catch(e){if(zt(e)){t.taskId&&h.value===t.taskId&&E(),Tt(t),await $(),d.success("后端记录已不存在,已同步移除本地记录");return}d.error(e instanceof Error?e.message:"删除失败")}}return ue(async()=>{Qt(),Kt(),await Promise.all([$(),lt(),R(),rt()]),h.value&&(y.value=h.value!=null?`检测到未完成任务,继续等待任务 ${h.value} 完成`:"",$t())}),ce(()=>{g=!0,it(),qt(),T.clearScope()}),(t,e)=>{const o=fe,n=pe,l=he;return i(),u("div",He,[m(de,{active:"patrol-delete"}),a("div",Oe,[a("aside",Ve,[e[5]||(e[5]=a("div",{class:"section-title"},"店铺输入",-1)),a("div",Qe,[e[3]||(e[3]=a("div",{class:"hint"}," 左侧负责录入店铺并加入备选区,点击“匹配店铺”只会生成匹配结果;确认后需手动点击“推送到 Python 队列”才会创建并执行任务。 ",-1)),a("div",Ke,[m(o,{modelValue:A.value,"onUpdate:modelValue":e[0]||(e[0]=s=>A.value=s),clearable:"",placeholder:"请输入店铺名后回车或点击添加",onKeyup:Mt(Dt,["enter"])},null,8,["modelValue"]),a("button",{type:"button",class:"opt-btn",disabled:B.value,onClick:Dt},r(B.value?"添加中...":"添加"),9,ze)])]),e[6]||(e[6]=a("div",{class:"section-title"},"备选区",-1)),Y.value.length?(i(),u("div",je,[m(l,{data:Y.value,"row-key":"id",height:"260",class:"candidate-table",onSelectionChange:Jt},{default:S(()=>[m(n,{type:"selection",width:"42"}),m(n,{prop:"shop_name",label:"店铺名","min-width":"140","show-overflow-tooltip":""}),m(n,{label:"操作",width:"72",align:"center"},{default:S(({row:s})=>[a("button",{type:"button",class:"link-danger",onClick:f=>Xt(s.id)}," 删除 ",8,Je)]),_:1})]),_:1},8,["data"])])):(i(),u("div",Ge," 暂无备选店铺,请先输入并添加 ")),e[7]||(e[7]=a("div",{class:"section-title condition-title"},[a("span",null,"删除条件"),a("span",{class:"condition-title-hint"}," 注意删除条件的描述需要和页面描述一致 ")],-1)),a("div",We,[a("div",Xe,[m(o,{modelValue:L.value,"onUpdate:modelValue":e[1]||(e[1]=s=>L.value=s),clearable:"",placeholder:"请输入删除条件",onKeyup:Mt(Pt,["enter"])},null,8,["modelValue"]),a("button",{type:"button",class:"opt-btn",disabled:x.value,onClick:Pt},r(x.value?"保存中...":"保存"),9,Ye)]),D.value.length?(i(),u("ul",ts,[(i(!0),u(W,null,ut(D.value,s=>(i(),u("li",{key:s.id,class:"condition-item"},[a("label",es,[me(a("input",{"onUpdate:modelValue":e[2]||(e[2]=f=>_.value=f),type:"checkbox",value:s.id},null,8,ss),[[ve,_.value]]),a("span",{title:s.conditionText},r(s.conditionText),9,as)]),a("button",{type:"button",class:"link-danger",onClick:f=>Wt(s.id)}," 删除 ",8,ns)]))),128))])):(i(),u("div",Ze," 暂无删除条件,保存后可在推送任务时多选携带。 "))]),a("div",os,[a("button",{type:"button",class:"btn-run",disabled:U.value||V.value,onClick:Zt},r(U.value?"匹配中...":"匹配店铺"),9,ls),a("button",{type:"button",class:"btn-run btn-queue",disabled:F.value||!tt.value.length,onClick:oe},r(F.value?"任务执行中...":"推送到 Python 队列"),9,rs)]),e[8]||(e[8]=a("p",{class:"loading-msg"}," 当前页面会把匹配结果合并为一个巡店删除任务推送;多个店铺会在同一个任务和同一个结果文件中汇总。 ",-1)),y.value?(i(),u("div",is,[e[4]||(e[4]=a("div",{class:"section-title queue-debug-title"},"队列状态",-1)),a("div",us,r(y.value),1),Z.value?(i(),u("pre",cs,r(Z.value),1)):v("",!0)])):v("",!0)]),a("section",ds,[e[17]||(e[17]=a("div",{class:"panel-header"},"匹配与任务",-1)),a("div",fs,[a("div",ps,[a("div",hs,[e[9]||(e[9]=a("span",{class:"summary-label"},"备选店铺",-1)),a("strong",null,r(P.value.candidateCount),1)]),a("div",ms,[e[10]||(e[10]=a("span",{class:"summary-label"},"已处理任务",-1)),a("strong",null,r(P.value.processedTaskCount),1)]),a("div",vs,[e[11]||(e[11]=a("span",{class:"summary-label"},"成功任务",-1)),a("strong",null,r(P.value.successTaskCount),1)]),a("div",ys,[e[12]||(e[12]=a("span",{class:"summary-label"},"失败任务",-1)),a("strong",null,r(P.value.failedTaskCount),1)])]),e[16]||(e[16]=a("div",{class:"subsection-title"},"匹配结果",-1)),w.value.length?(i(),ye(l,{key:1,data:w.value,"row-key":N,"highlight-current-row":!1,class:"result-table match-table"},{default:S(()=>[m(n,{prop:"shopName",label:"店铺名","min-width":"120"}),m(n,{label:"匹配",width:"72",align:"center"},{default:S(({row:s})=>[a("span",{class:ct(s.matched?"ok":"fail")},r(s.matched?"是":"否"),3)]),_:1}),m(n,{prop:"shopId",label:"店铺 ID","min-width":"120","show-overflow-tooltip":""}),m(n,{prop:"platform",label:"平台",width:"88","show-overflow-tooltip":""}),m(n,{prop:"companyName",label:"公司","min-width":"120","show-overflow-tooltip":""}),m(n,{label:"状态",width:"110","show-overflow-tooltip":""},{default:S(({row:s})=>[At(r(Ut(s.matchStatus)),1)]),_:1}),m(n,{label:"说明","min-width":"180","show-overflow-tooltip":""},{default:S(({row:s})=>[At(r(Ft(s)),1)]),_:1}),m(n,{label:"操作",width:"72",align:"center"},{default:S(({row:s})=>[a("button",{type:"button",class:"link-danger",onClick:f=>te(s)}," 删除 ",8,ws)]),_:1})]),_:1},8,["data"])):(i(),u("div",_s," 完成“匹配店铺”后,这里会展示匹配结果。 ")),a("div",gs,[e[15]||(e[15]=a("div",{class:"result-list-header"},[a("span",null,"任务记录")],-1)),!O.value.length&&!et.value.length?(i(),u("div",ks," 暂无任务记录。推送到 Python 队列后,这里会展示当前任务和历史任务。 ")):(i(),u(W,{key:1},[O.value.length?(i(),u("div",bs,[e[13]||(e[13]=a("div",{class:"result-subsection-title"},"当前任务",-1)),a("ul",Ss,[(i(!0),u(W,null,ut(O.value,s=>(i(),u("li",{key:mt(s),class:"task-item"},[a("div",Is,[a("span",{class:"id",title:K(s)},r(K(s)),9,Ts),a("div",Cs,"任务 ID: "+r(s.taskId??"-"),1),z(s)?(i(),u("div",Es," 结果 ID: "+r(z(s)),1)):v("",!0),G(s)?(i(),u("div",Ds," 店铺 ID: "+r(G(s)),1)):v("",!0),s.platform?(i(),u("div",Ps," 平台: "+r(s.platform),1)):v("",!0),a("div",Ns," 创建时间: "+r(at(s.createdAt)),1),a("div",$s," 模板: "+r(wt(s)),1),j(s)?(i(),u("div",Rs," 错误: "+r(j(s)),1)):v("",!0)]),a("div",Ms,[a("span",{class:ct(["status",bt(s.taskStatus)])},r(kt(s.taskStatus)),3),a("button",{type:"button",class:"btn-delete",onClick:f=>Rt(s)}," 删除 ",8,As)])]))),128))])])):v("",!0),et.value.length?(i(),u("div",Ls,[e[14]||(e[14]=a("div",{class:"result-subsection-title"},"历史任务",-1)),a("ul",qs,[(i(!0),u(W,null,ut(et.value,s=>(i(),u("li",{key:mt(s),class:"task-item"},[a("div",Bs,[a("span",{class:"id",title:K(s)},r(K(s)),9,xs),a("div",Us,"任务 ID: "+r(s.taskId??"-"),1),z(s)?(i(),u("div",Fs," 结果 ID: "+r(z(s)),1)):v("",!0),G(s)?(i(),u("div",Hs," 店铺 ID: "+r(G(s)),1)):v("",!0),s.platform?(i(),u("div",Os," 平台: "+r(s.platform),1)):v("",!0),a("div",Vs," 创建时间: "+r(at(s.createdAt)),1),s.finishedAt?(i(),u("div",Qs," 完成时间: "+r(at(s.finishedAt)),1)):v("",!0),a("div",Ks," 模板: "+r(wt(s)),1),j(s)?(i(),u("div",zs," 错误: "+r(j(s)),1)):v("",!0)]),a("div",Gs,[a("span",{class:ct(["status",bt(s.taskStatus)])},r(kt(s.taskStatus)),3),St(s)?(i(),u("button",{key:0,type:"button",class:"archive",onClick:f=>le(s)}," 下载结果 ",8,js)):v("",!0),a("button",{type:"button",class:"btn-delete",onClick:f=>Rt(s)}," 删除 ",8,Js)])]))),128))])])):v("",!0)],64))])])])])])}}}),Xs=Le(Ws,[["__scopeId","data-v-09e791f5"]]);qe.locale("zh-cn");Be(Xs).use(xe,{locale:Ue}).mount("#app");