2 lines
7.5 KiB
JavaScript
2 lines
7.5 KiB
JavaScript
import{d as S,o as D,a as l,c as n,b as N,B as j,e as a,F as y,r as x,t as o,f as c,J as H,n as T,g as _,h as V,i as g,E as r,j as A,K,L as M,M as z,_ 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"},as={class:"right-panel"},ts={class:"task-list-wrap"},ls={class:"clean-result-summary"},ns={class:"summary-card"},os={class:"summary-card"},is={class:"summary-card"},rs={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"],fs={class:"files"},ps={class:"files"},_s={key:0,class:"files"},hs={key:1,class:"files"},bs={key:2,class:"time"},ys={key:3,class:"files split-entry-list delete-brand-preview"},gs={key:4,class:"files"},ms={class:"task-right split-result-actions"},ks=["onClick"],ws=["onClick"],xs=S({__name:"BrandDeleteBrandTab",setup(Bs){const d=_([]),h=_([]),u=_(!1),v=_([]),f=_({total:0,successCount:0,failedCount:0,items:[]}),b=V(()=>d.value.slice(0,8));function C(t){f.value={total:t.length,successCount:t.filter(s=>s.success).length,failedCount:t.filter(s=>!s.success).length,items:t}}async function m(t){const s=g();if(!s?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const e=[];for(const i of t){const w=typeof i=="string"?i:i.absolutePath,R=typeof i=="string"?void 0:i.relativePath,p=await s.upload_file_to_java(w,R);if(!p?.success||!p.data)throw new Error(p?.error||p?.message||`上传失败:${w}`);e.push(p.data)}return e}async function B(){const t=g();if(!t?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const s=await t.select_brand_xlsx_files();if(!s?.length)return;d.value=s,h.value=await m(s),r.success(`已选择 ${s.length} 个删除品牌文件`)}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function E(){const t=g();if(!t?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const s=await t.select_brand_folder();if(!s)return;const e=await A(s);if(!e.success||!e.items?.length){r.warning(e.error||"该文件夹下没有 xlsx 文件");return}d.value=e.items.map(i=>i.relativePath||i.absolutePath),h.value=await m(e.items),r.success(`已选择文件夹内 ${e.items.length} 个 xlsx 文件`)}catch(s){r.error(s instanceof Error?s.message:"选择失败")}}async function P(){if(!h.value.length){r.warning("请先选择待处理文件");return}try{u.value=!0;const t=await K({files:h.value.map(s=>({fileKey:s.fileKey,originalFilename:s.originalFilename,relativePath:s.relativePath}))});f.value=t,v.value=t.items||[],r.success("删除品牌解析完成")}catch(t){r.error(t instanceof Error?t.message:"执行失败")}finally{u.value=!1}}async function k(){try{const t=await M();v.value=t.items||[],C(v.value)}catch{}}async function $(t){try{await z(t),await k(),r.success("已删除")}catch(s){r.error(s instanceof Error?s.message:"删除失败")}}function F(t){const s=t.slice(0,5).map(i=>`${i.country}:${i.asin}${i.status?`(${i.status})`:""}`);return t.length-s.length>0?`${s.join("、")} 等 ${t.length} 条`:s.join("、")}function I(t){window.open(t,"_blank")}return D(()=>{k().catch(()=>{})}),(t,s)=>(l(),n("div",q,[N(j,{active:"delete-brand"}),a("div",G,[a("aside",O,[s[1]||(s[1]=a("div",{class:"section-title"},"选择文件",-1)),a("div",Q,[s[0]||(s[0]=a("div",{class:"hint"},"上传删除品牌 Excel;无论是直接上传文件还是上传文件夹批量导入,都会按每个 Excel 文件名作为店铺名。",-1)),a("div",{class:"btns"},[a("button",{type:"button",class:"opt-btn",onClick:B},"选择 Excel 文件"),a("button",{type:"button",class:"opt-btn",onClick:E},"选择文件夹")]),a("div",W,[d.value.length?(l(),n(y,{key:0},[(l(!0),n(y,null,x(b.value,e=>(l(),n("span",{key:e},o(e),1))),128)),d.value.length>b.value.length?(l(),n("span",X," 还有 "+o(d.value.length-b.value.length)+" 个文件未展开显示 ",1)):c("",!0)],64)):(l(),n("span",Y,"暂未选择删除品牌文件"))])]),s[2]||(s[2]=H('<div class="section-title" data-v-ff0a9bae>执行说明</div><div class="option-group" data-v-ff0a9bae><label class="radio-item active" data-v-ff0a9bae><input type="checkbox" checked disabled data-v-ff0a9bae><div data-v-ff0a9bae><span class="label" data-v-ff0a9bae>文件名作为店铺名</span><div class="desc" data-v-ff0a9bae>例如 鲍丽明.xlsx 会解析为店铺名 鲍丽明;当前先不联动紫鸟</div></div></label><label class="radio-item active" data-v-ff0a9bae><input type="checkbox" checked disabled data-v-ff0a9bae><div data-v-ff0a9bae><span class="label" data-v-ff0a9bae>文件夹仅用于批量导入</span><div class="desc" data-v-ff0a9bae>文件夹名和子目录名不会参与店铺匹配,只是方便一次上传多个 Excel</div></div></label><label class="radio-item active" data-v-ff0a9bae><input type="checkbox" checked disabled data-v-ff0a9bae><div data-v-ff0a9bae><span class="label" data-v-ff0a9bae>按国家分组去重</span><div class="desc" data-v-ff0a9bae>解析后按国家返回,并在每个国家内按 ASIN 去重(保留首次出现的状态)</div></div></label></div>',2)),a("div",Z,[a("button",{type:"button",class:"btn-run",disabled:u.value,onClick:P},o(u.value?"解析中...":"开始解析"),9,ss),a("span",es,o(u.value?"正在读取删除品牌数据,请稍候…":"解析后会在右侧展示按国家分组的去重结果"),1)])]),a("section",as,[s[7]||(s[7]=a("div",{class:"panel-header"},"删除品牌结果",-1)),a("div",ts,[a("div",ls,[a("div",ns,[s[3]||(s[3]=a("span",{class:"summary-label"},"已处理文件",-1)),a("strong",null,o(f.value.total),1)]),a("div",os,[s[4]||(s[4]=a("span",{class:"summary-label"},"成功结果",-1)),a("strong",null,o(f.value.successCount),1)]),a("div",is,[s[5]||(s[5]=a("span",{class:"summary-label"},"失败文件",-1)),a("strong",null,o(f.value.failedCount),1)])]),a("div",rs,[s[6]||(s[6]=a("div",{class:"result-list-header"},[a("span",null,"删除品牌结果列表")],-1)),v.value.length===0?(l(),n("div",cs," 暂无删除品牌结果,完成解析后会在这里展示按国家分组的去重结果 ")):(l(),n("ul",ds,[(l(!0),n(y,null,x(v.value,e=>(l(),n("li",{key:`${e.resultId||e.taskId||e.sourceFilename}`,class:"task-item split-result-item"},[a("div",us,[a("span",{class:"id",title:e.sourceFilename},o(e.sourceFilename||"-"),9,vs),a("div",fs,"店铺名:"+o(e.shopName||"-"),1),a("div",ps,"匹配结果:"+o(e.matched?`已匹配 ${e.shopId||""}`:"未匹配到紫鸟店铺"),1),e.platform?(l(),n("div",_s,"平台:"+o(e.platform),1)):c("",!0),e.countryCount!==void 0?(l(),n("div",hs,"国家数:"+o(e.countryCount),1)):c("",!0),e.totalRows!==void 0?(l(),n("div",bs,"去重后 "+o(e.totalRows)+" 条",1)):c("",!0),e.previewRows?.length?(l(),n("div",ys,o(F(e.previewRows)),1)):c("",!0),e.error?(l(),n("div",gs,"错误信息:"+o(e.error),1)):c("",!0)]),a("div",ms,[a("span",{class:T(["status",e.success?"success":"failed"])},o(e.success?"已完成":"失败"),3),e.openStoreUrl?(l(),n("button",{key:0,type:"button",class:"download",onClick:i=>I(e.openStoreUrl)}," 打开紫鸟 ",8,ks)):c("",!0),e.resultId?(l(),n("button",{key:1,type:"button",class:"btn-delete",onClick:i=>$(e.resultId)}," 删除 ",8,ws)):c("",!0)])]))),128))]))])])])])]))}}),Cs=J(xs,[["__scopeId","data-v-ff0a9bae"]]);L(Cs).use(U).mount("#app");
|