import{d as A,o as H,a as n,c as o,b as z,B as K,e as s,F as w,r as x,t as i,f as _,n as P,w as M,x as j,y as q,g as u,h as E,z as G,i as F,E as r,A as J,C as L,D as O,G as W,s as Q,_ as X,q as Y,u as Z}from"./java-modules-B8c-YG5x.js";import{e as ee}from"./brand-COze15GJ.js";const se={class:"page-shell module-page"},te={class:"main-content"},ae={class:"left-panel"},le={class:"upload-zone"},ne={class:"selected-files clean-placeholder"},oe={key:0,class:"more-line"},re={key:1},ie={class:"option-group"},ce=["value"],ue={class:"template-item-content"},de={class:"label"},ve={key:0,class:"template-tag"},pe={key:1,class:"template-tag muted"},_e={key:2,class:"template-tag custom"},fe={class:"desc"},me={key:0,class:"empty-option"},he={class:"option-group"},ye={class:"radio-item active"},ge={class:"desc"},be={class:"run-row"},we=["disabled"],ke={class:"loading-msg"},Ce={class:"right-panel"},xe={class:"task-list-wrap"},Fe={class:"clean-result-summary"},Ie={class:"summary-card"},Pe={class:"summary-card"},Ee={class:"summary-card"},Te={class:"result-list-wrap"},Be={key:0,class:"empty-tasks"},De={key:1,class:"task-list clean-result-list"},$e={class:"left"},Ne=["title"],Re={key:0,class:"files"},Se={key:1,class:"files"},Ue={class:"task-right"},Ve=["onClick"],Ae=["onClick"],He=A({__name:"BrandConvertTab",setup(Ke){const v=u([]),g=u(""),f=u([]),m=u(!1),b=u([]),h=u({total:0,successCount:0,failedCount:0,items:[]}),d=u([]),c=u(""),k=E(()=>v.value.slice(0,8)),T=E(()=>d.value.find(a=>a.id===c.value)||null);async function I(a){const e=F();if(!e?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传桥接能力");const t=[];for(const l of a){const p=typeof l=="string"?l:l.absolutePath,V=typeof l=="string"?void 0:l.relativePath,y=await e.upload_file_to_java(p,V);if(!y?.success||!y.data)throw new Error(y?.error||y?.message||`上传失败:${p}`);t.push(y.data)}return t}async function B(a){const e=await G();d.value=e||[];const t=d.value.find(p=>p.id===c.value);if(t){c.value=t.id;return}const l=d.value.find(p=>p.isDefault);if(l){c.value=l.id;return}c.value=d.value[0]?.id||""}async function D(a,e){v.value=a,g.value="",f.value=await I(a),r.success(e)}async function $(){const a=F();if(!a?.select_brand_xlsx_files){r.warning("当前环境不支持文件选择,请在本机客户端中打开");return}try{const e=await a.select_brand_xlsx_files();if(!e?.length)return;await D(e,`已选择 ${e.length} 个待转换文件`)}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function N(){const a=F();if(!a?.select_brand_folder){r.warning("当前环境不支持文件夹选择,请在本机客户端中打开");return}try{const e=await a.select_brand_folder();if(!e)return;g.value=e.split(/[/\\]/).filter(Boolean).pop()||"";const t=await ee(e);if(t.success&&t.items?.length){v.value=t.items.map(l=>l.relativePath),f.value=await I(t.items),r.success(`已选择文件夹内 ${t.items.length} 个 xlsx 文件`);return}r.warning(t.error||"该文件夹下没有 xlsx 文件")}catch(e){r.error(e instanceof Error?e.message:"选择失败")}}async function R(){if(!f.value.length){r.warning("请先选择待转换 Excel 文件或文件夹");return}if(!c.value){r.warning("请先选择模板");return}try{m.value=!0;const a=await J({files:f.value.map(e=>({fileKey:e.fileKey,originalFilename:e.originalFilename,relativePath:e.relativePath})),templateId:c.value,archiveName:f.value.some(e=>!!e.relativePath)&&g.value?g.value:void 0});h.value=a,b.value=a.items||[],await C(),r.success("格式转换完成")}catch(a){r.error(a instanceof Error?a.message:"格式转换失败")}finally{m.value=!1}}async function C(){try{const a=await L();b.value=a.items||[],h.value={total:a.items?.length||0,successCount:a.items?.filter(e=>e.success).length||0,failedCount:a.items?.filter(e=>!e.success).length||0,items:a.items||[]}}catch{}}async function S(a){try{await O(a),await C(),r.success("已删除")}catch(e){r.error(e instanceof Error?e.message:"删除失败")}}async function U(a){const e=a.downloadUrl||(a.resultId?W(a.resultId):"");if(!e){r.warning("当前结果没有下载地址");return}const t=a.outputFilename||`${new Date().toISOString().slice(0,10).replace(/-/g,"")}.txt`,l=await Q(e,t,a.resultId?`convert:${a.resultId}`:void 0);l.success?r.success(`已保存:${l.path||t}`):l.error&&l.error!=="用户取消"&&r.error(l.error)}return H(()=>{B().catch(()=>{}),C().catch(()=>{})}),(a,e)=>(n(),o("div",se,[z(K,{active:"convert"}),s("div",te,[s("aside",ae,[e[5]||(e[5]=s("div",{class:"section-title"},"选择文件",-1)),s("div",le,[e[1]||(e[1]=s("div",{class:"hint"},"选择需要转换的 Excel 文件或文件夹,将按所选模板生成 txt 文件。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:$},"选择 Excel 文件"),s("button",{type:"button",class:"opt-btn",onClick:N},"选择文件夹")]),s("div",ne,[v.value.length?(n(),o(w,{key:0},[(n(!0),o(w,null,x(k.value,t=>(n(),o("span",{key:t},i(t),1))),128)),v.value.length>k.value.length?(n(),o("span",oe," 还有 "+i(v.value.length-k.value.length)+" 个文件未展开显示 ",1)):_("",!0)],64)):(n(),o("span",re,"暂未选择待转换文件"))])]),e[6]||(e[6]=s("div",{class:"section-title"},"模板选择",-1)),s("div",ie,[(n(!0),o(w,null,x(d.value,t=>(n(),o("label",{key:t.id,class:P(["radio-item",{active:c.value===t.id}])},[M(s("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>c.value=l),type:"radio",value:t.id,name:"convert-template"},null,8,ce),[[j,c.value]]),s("div",ue,[s("div",null,[s("span",de,[q(i(t.templateName)+" ",1),t.isDefault?(n(),o("span",ve,"默认")):t.builtIn?(n(),o("span",pe,"内置")):(n(),o("span",_e,"自定义"))]),s("div",fe,"输出文件:"+i(t.outputFilename),1)])])],2))),128)),d.value.length?_("",!0):(n(),o("div",me,"暂无可用模板"))]),e[7]||(e[7]=s("div",{class:"section-title"},"转换说明",-1)),s("div",he,[s("label",ye,[e[3]||(e[3]=s("input",{type:"checkbox",checked:"",disabled:""},null,-1)),s("div",null,[e[2]||(e[2]=s("span",{class:"label"},"按当前模板输出",-1)),s("div",ge,"当前模板:"+i(T.value?.templateName||"未加载模板"),1)])]),e[4]||(e[4]=s("label",{class:"radio-item active"},[s("input",{type:"checkbox",checked:"",disabled:""}),s("div",null,[s("span",{class:"label"},"SKU 使用雪花ID-序号"),s("div",{class:"desc"},"例如 1773816146796-1")])],-1))]),s("div",be,[s("button",{type:"button",class:"btn-run",disabled:m.value,onClick:R},i(m.value?"转换中...":"开始转换"),9,we),s("span",ke,i(m.value?"正在生成并上传结果,请稍候…":"选择文件后即可执行格式转换,结果会显示在右侧供下载"),1)])]),s("section",Ce,[e[12]||(e[12]=s("div",{class:"panel-header"},"转换结果",-1)),s("div",xe,[s("div",Fe,[s("div",Ie,[e[8]||(e[8]=s("span",{class:"summary-label"},"已处理文件",-1)),s("strong",null,i(h.value.total),1)]),s("div",Pe,[e[9]||(e[9]=s("span",{class:"summary-label"},"成功结果",-1)),s("strong",null,i(h.value.successCount),1)]),s("div",Ee,[e[10]||(e[10]=s("span",{class:"summary-label"},"失败文件",-1)),s("strong",null,i(h.value.failedCount),1)])]),s("div",Te,[e[11]||(e[11]=s("div",{class:"result-list-header"},[s("span",null,"生成的结果压缩包列表")],-1)),b.value.length===0?(n(),o("div",Be," 暂无转换结果,完成格式转换后会在这里展示结果压缩包 ")):(n(),o("ul",De,[(n(!0),o(w,null,x(b.value,t=>(n(),o("li",{key:`${t.resultId||t.outputFilename||t.sourceFilename}`,class:"task-item"},[s("div",$e,[s("span",{class:"id",title:t.sourceFilename},i(t.sourceFilename||"-"),9,Ne),t.outputFilename?(n(),o("div",Re,"压缩包文件:"+i(t.outputFilename),1)):_("",!0),t.error?(n(),o("div",Se,"错误信息:"+i(t.error),1)):_("",!0)]),s("div",Ue,[s("span",{class:P(["status",t.success?"success":"failed"])},i(t.success?"已完成":"失败"),3),t.success&&(t.downloadUrl||t.resultId)?(n(),o("button",{key:0,type:"button",class:"download",onClick:l=>U(t)}," 下载压缩包 ",8,Ve)):_("",!0),t.resultId?(n(),o("button",{key:1,type:"button",class:"btn-delete",onClick:l=>S(t.resultId)}," 删除 ",8,Ae)):_("",!0)])]))),128))]))])])])])]))}}),ze=X(He,[["__scopeId","data-v-64f58715"]]);Y(ze).use(Z).mount("#app");