2 lines
7.1 KiB
JavaScript
2 lines
7.1 KiB
JavaScript
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");
|