Files
crawler-plugin/app/assets/delete-brand.js
2026-03-26 16:42:25 +08:00

2 lines
7.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{d as D,o as S,a as l,c as n,b as j,B as N,e as t,F as b,r as C,t as o,f as c,J as H,n as T,g as h,h as V,i as m,E as i,j as K,K as M,L as z,M as A,_ as J,q as L,s as U}from"./pywebview-Bl6M97uH.js";const q={class:"page-shell module-page"},G={class:"main-content"},O={class:"left-panel"},Q={class:"upload-zone"},W={class:"selected-files clean-placeholder split-selected-files"},X={key:0,class:"more-line"},Y={key:1},Z={class:"run-row"},ss=["disabled"],es={class:"loading-msg"},ts={class:"right-panel"},as={class:"task-list-wrap"},ls={class:"clean-result-summary"},ns={class:"summary-card"},os={class:"summary-card"},rs={class:"summary-card"},is={class:"result-list-wrap"},cs={key:0,class:"empty-tasks"},ds={key:1,class:"task-list clean-result-list"},us={class:"left split-result-main"},vs=["title"],ps={class:"files"},_s={class:"files"},hs={key:0,class:"files"},fs={key:1,class:"time"},ys={key:2,class:"files"},gs={key:3,class:"files split-entry-list delete-brand-preview"},bs={key:4,class:"files"},ms={class:"task-right split-result-actions"},ws=["onClick"],ks=["onClick"],Cs=D({__name:"BrandDeleteBrandTab",setup(Bs){const d=h([]),f=h([]),u=h(!1),v=h([]),p=h({total:0,successCount:0,failedCount:0,items:[]}),y=V(()=>d.value.slice(0,8));function x(a){p.value={total:a.length,successCount:a.filter(s=>s.success).length,failedCount:a.filter(s=>!s.success).length,items:a}}async function w(a){const s=m();if(!s?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const e=[];for(const r of a){const k=typeof r=="string"?r:r.absolutePath,I=typeof r=="string"?void 0:r.relativePath,_=await s.upload_file_to_java(k,I);if(!_?.success||!_.data)throw new Error(_?.error||_?.message||`上传失败:${k}`);e.push(_.data)}return e}async function B(){const a=m();if(!a?.select_brand_xlsx_files){i.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const s=await a.select_brand_xlsx_files();if(!s?.length)return;d.value=s,f.value=await w(s),i.success(`已选择 ${s.length} 个删除品牌文件`)}catch(s){i.error(s instanceof Error?s.message:"选择失败")}}async function $(){const a=m();if(!a?.select_brand_folder){i.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const s=await a.select_brand_folder();if(!s)return;const e=await K(s);if(!e.success||!e.items?.length){i.warning(e.error||"该文件夹下没有 xlsx 文件");return}d.value=e.items.map(r=>r.relativePath||r.absolutePath),f.value=await w(e.items),i.success(`已选择文件夹内 ${e.items.length} 个 xlsx 文件`)}catch(s){i.error(s instanceof Error?s.message:"选择失败")}}async function P(){if(!f.value.length){i.warning("请先选择待处理文件");return}try{u.value=!0;const a=await M({files:f.value.map(s=>({fileKey:s.fileKey,originalFilename:s.originalFilename,relativePath:s.relativePath}))});p.value=a,v.value=a.items||[],await g(),i.success("删除品牌解析完成")}catch(a){i.error(a instanceof Error?a.message:"执行失败")}finally{u.value=!1}}async function g(){try{const a=await z();v.value=a.items||[],x(v.value)}catch{}}async function E(a){try{await A(a),await g(),i.success("已删除")}catch(s){i.error(s instanceof Error?s.message:"删除失败")}}function F(a){const s=a.slice(0,5).map(r=>`${r.country}:${r.asin}${r.status?`${r.status}`:""}`);return a.length-s.length>0?`${s.join("、")}${a.length}`:s.join("、")}function R(a){window.open(a,"_blank")}return S(()=>{g().catch(()=>{})}),(a,s)=>(l(),n("div",q,[j(N,{active:"delete-brand"}),t("div",G,[t("aside",O,[s[1]||(s[1]=t("div",{class:"section-title"},"选择文件",-1)),t("div",Q,[s[0]||(s[0]=t("div",{class:"hint"},"上传删除品牌 Excel文件名会作为店铺名去匹配紫鸟店铺。",-1)),t("div",{class:"btns"},[t("button",{type:"button",class:"opt-btn",onClick:B},"选择 Excel 文件"),t("button",{type:"button",class:"opt-btn",onClick:$},"选择文件夹")]),t("div",W,[d.value.length?(l(),n(b,{key:0},[(l(!0),n(b,null,C(y.value,e=>(l(),n("span",{key:e},o(e),1))),128)),d.value.length>y.value.length?(l(),n("span",X," 还有 "+o(d.value.length-y.value.length)+" 个文件未展开显示 ",1)):c("",!0)],64)):(l(),n("span",Y,"暂未选择删除品牌文件"))])]),s[2]||(s[2]=H('<div class="section-title" data-v-216de439>执行说明</div><div class="option-group" data-v-216de439><label class="radio-item active" data-v-216de439><input type="checkbox" checked disabled data-v-216de439><div data-v-216de439><span class="label" data-v-216de439>文件名作为店铺名</span><div class="desc" data-v-216de439>例如 鲍丽明.xlsx 会匹配紫鸟店铺 鲍丽明</div></div></label><label class="radio-item active" data-v-216de439><input type="checkbox" checked disabled data-v-216de439><div data-v-216de439><span class="label" data-v-216de439>大表仅返回预览</span><div class="desc" data-v-216de439>当前最多展示前 200 行,避免大文件直接拖慢页面</div></div></label></div>',2)),t("div",Z,[t("button",{type:"button",class:"btn-run",disabled:u.value,onClick:P},o(u.value?"解析中...":"开始解析"),9,ss),t("span",es,o(u.value?"正在读取删除品牌数据并匹配紫鸟店铺,请稍候…":"解析后会在右侧展示预览数据和紫鸟店铺打开链接"),1)])]),t("section",ts,[s[7]||(s[7]=t("div",{class:"panel-header"},"删除品牌结果",-1)),t("div",as,[t("div",ls,[t("div",ns,[s[3]||(s[3]=t("span",{class:"summary-label"},"已处理文件",-1)),t("strong",null,o(p.value.total),1)]),t("div",os,[s[4]||(s[4]=t("span",{class:"summary-label"},"成功结果",-1)),t("strong",null,o(p.value.successCount),1)]),t("div",rs,[s[5]||(s[5]=t("span",{class:"summary-label"},"失败文件",-1)),t("strong",null,o(p.value.failedCount),1)])]),t("div",is,[s[6]||(s[6]=t("div",{class:"result-list-header"},[t("span",null,"删除品牌结果列表")],-1)),v.value.length===0?(l(),n("div",cs," 暂无删除品牌结果,完成解析后会在这里展示店铺匹配结果和预览数据 ")):(l(),n("ul",ds,[(l(!0),n(b,null,C(v.value,e=>(l(),n("li",{key:`${e.resultId||e.sourceFilename}-${e.shopId||""}`,class:"task-item split-result-item"},[t("div",us,[t("span",{class:"id",title:e.sourceFilename},o(e.sourceFilename||"-"),9,vs),t("div",ps,"店铺名:"+o(e.shopName||"-"),1),t("div",_s,"匹配结果:"+o(e.matched?`已匹配 ${e.shopId||""}`:"未匹配到紫鸟店铺"),1),e.platform?(l(),n("div",hs,"平台:"+o(e.platform),1)):c("",!0),e.totalRows!==void 0?(l(),n("div",fs,"预览 "+o(e.previewRows?.length||0)+" / "+o(e.totalRows)+" 行",1)):c("",!0),e.truncated?(l(),n("div",ys,"数据较大,当前仅展示前 200 行")):c("",!0),e.previewRows?.length?(l(),n("div",gs,o(F(e.previewRows)),1)):c("",!0),e.error?(l(),n("div",bs,"错误信息:"+o(e.error),1)):c("",!0)]),t("div",ms,[t("span",{class:T(["status",e.success?"success":"failed"])},o(e.success?"已完成":"失败"),3),e.openStoreUrl?(l(),n("button",{key:0,type:"button",class:"download",onClick:r=>R(e.openStoreUrl)}," 打开店铺 ",8,ws)):c("",!0),e.resultId?(l(),n("button",{key:1,type:"button",class:"btn-delete",onClick:r=>E(e.resultId)}," 删除 ",8,ks)):c("",!0)])]))),128))]))])])])])]))}}),xs=J(Cs,[["__scopeId","data-v-216de439"]]);L(xs).use(U).mount("#app");