Files
crawler-plugin/new_web_source/assets/similar-asin.js
2026-05-10 01:00:08 +08:00

5 lines
19 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 tt,o as st,L as at,a as o,c as i,b as m,B as nt,e as s,F as H,r as M,t as r,w as Ce,G as lt,u as ot,f as y,a4 as be,a5 as ee,a6 as it,a7 as rt,N as ut,n as ct,a8 as dt,a9 as ft,g as d,h as S,aa as vt,E as c,i as j,ab as pt,ac as gt,ad as ht,ae as yt,af as _t,U as Se,ag as kt,ah as mt,ai as wt,aj as Ct,ak as bt,a2 as St,al as It,_ as Tt,q as Pt,s as Ft}from"./pywebview-DNfEzGOK.js";/* empty css */import{e as Et}from"./brand-D4E3c93-.js";import{c as Rt}from"./categorized-timers-JPA-olTr.js";const At={class:"page-shell module-page"},Nt={class:"main-content"},xt={class:"left-panel"},Ut={class:"upload-zone"},Dt={class:"selected-files"},$t={key:0},Bt={class:"prompt-card"},Lt={class:"condition-actions"},Gt=["disabled"],Ht={key:0,class:"empty-conditions"},Mt={key:1,class:"condition-list"},jt={class:"condition-check"},qt=["value","onChange"],Vt=["title"],zt=["onClick"],Kt={class:"category-card"},Ot={class:"category-card-head"},Jt={class:"category-actions"},Qt={key:0,class:"empty-conditions"},Yt={key:1,class:"selected-category-list"},Wt={class:"run-row"},Xt=["disabled"],Zt=["disabled"],es={key:0,class:"parse-card"},ts={key:1,class:"queue-payload"},ss={class:"right-panel"},as={class:"task-list-wrap"},ns={class:"clean-result-summary"},ls={class:"summary-card"},os={class:"summary-card"},is={class:"summary-card"},rs={class:"summary-card"},us={class:"result-list-wrap preview-wrap"},cs={class:"result-list-header"},ds={key:0,class:"muted"},fs={key:0,class:"empty-tasks"},vs={class:"result-list-wrap"},ps={key:0,class:"empty-tasks"},gs={key:1,class:"task-list clean-result-list"},hs={class:"left"},ys={class:"id"},_s={class:"files"},ks={class:"files"},ms={class:"task-right"},ws={class:"status running"},Cs=["onClick"],bs={class:"result-list-wrap"},Ss={key:0,class:"empty-tasks"},Is={key:1,class:"task-list clean-result-list"},Ts={class:"left"},Ps={class:"id"},Fs={class:"files"},Es={key:0,class:"files"},Rs={key:1,class:"files result-hint"},As={key:2,class:"file-progress"},Ns={class:"file-progress-meta"},xs={class:"file-progress-track"},Us={class:"file-progress-count"},Ds={key:3,class:"files"},$s={class:"task-right"},Bs=["onClick"],Ls=["onClick"],Gs={key:0,class:"empty-tasks"},Hs={key:1,class:"empty-tasks"},Ms={class:"category-tree-node"},js={key:0,class:"category-description"},qs=3e3,Vs=tt({__name:"BrandSimilarAsinTab",setup(Ks){const q=d([]),I=d([]),w=d(null),V=d([]),T=d(null),P=d(""),F=d([]),_=d(null),z=d([]),re=d([]),E=d([]),R=d(!1),K=d(!1),A=d(null),O=d(!1),J=d(!1),Q=d(!1),C=d(""),p=d([]),f=d([]),g=d(null),te=d(!1);let N=null,ue=0,x=!1;const U=Rt("similar-asin"),D=d({pendingTaskCount:0,processedTaskCount:0,successTaskCount:0,failedTaskCount:0}),h=d([]),$=S(()=>w.value?.items||[]),Ie=S(()=>$.value),B=S(()=>w.value||T.value),ce=S(()=>h.value.filter(e=>e.taskId!=null&&p.value.includes(e.taskId))),de=S(()=>h.value.filter(e=>{const t=Z(e);return t!=="RUNNING"&&t!=="PENDING"}));function Te(){const e=_.value;return e==null?"":F.value.find(t=>t.id===e)?.conditionText?.trim()||""}function fe(){return Pe(P.value.trim()||Te())}function Y(){return St("similar-asin").trim()}const se=S(()=>{const e=new Set(E.value);return re.value.filter(t=>e.has(t.id))});function Pe(e){const t=se.value.map(l=>{const u=l.path||l.name,v=l.description?.trim();return v?`${u}${v}`:u}).filter(Boolean);if(!t.length)return e;const n=["商品类目要求:",...t.map(l=>`- ${l}`)].join(`
`);return e?`${e}
${n}`:n}async function ve(){if(!K.value){K.value=!0;try{const e=await vt();z.value=e.tree||[],re.value=e.items||[]}catch(e){c.error(e instanceof Error?e.message:"加载商品类目失败")}finally{K.value=!1}}}async function Fe(){R.value=!0,z.value.length||await ve(),requestAnimationFrame(()=>{A.value?.setCheckedKeys?.(E.value)})}function pe(e,t){return!!e.children?.some(n=>t.has(n.id)||pe(n,t))}function Ee(){const e=A.value?.getCheckedNodes?.(!1,!1)||[],t=new Set(e.map(n=>n.id));E.value=e.filter(n=>!pe(n,t)).map(n=>n.id),R.value=!1}function Re(){A.value?.setCheckedKeys?.([])}function Ae(){E.value=[],A.value?.setCheckedKeys?.([])}function Ne(e){return e?e.length<=10?"***":`${e.slice(0,6)}***${e.slice(-4)}`:""}function xe(e){return{...e,data:e.data?{...e.data,api_key:Ne(String(e.data.api_key||""))}:e.data}}function Ue(){return typeof window<"u"&&window.localStorage.getItem("uid")||"0"}function ae(){return`similar-asin:tasks:${Ue()}`}function De(e){return{taskId:e.taskId,totalRows:e.totalRows,acceptedRows:e.acceptedRows,groupCount:e.groupCount,droppedRows:e.droppedRows}}function b(){if(typeof window>"u")return;const e=Array.from(new Set([...p.value,...f.value]));e.length?window.localStorage.setItem(ae(),JSON.stringify(e)):window.localStorage.removeItem(ae())}function $e(){if(!(typeof window>"u"))try{const e=window.localStorage.getItem(ae()),t=e?JSON.parse(e):[];p.value=Array.isArray(t)?t.filter(n=>typeof n=="number"&&n>0):[]}catch{p.value=[]}}async function ge(e){const t=j();if(!t?.upload_file_to_java)throw new Error("当前桌面端未提供文件上传能力");const n=[];for(const l of e){const u=typeof l=="string"?l:l.absolutePath,v=typeof l=="string"?void 0:l.relativePath,a=await t.upload_file_to_java(u,v);if(!a?.success||!a.data)throw new Error(a?.error||a?.message||`上传失败:${u}`);n.push(a.data)}return n}async function Be(){const e=j();if(!e?.select_brand_xlsx_files||!e.upload_file_to_java){c.warning("当前桌面端未提供文件选择或上传能力");return}const t=await e.select_brand_xlsx_files();if(!t?.length)return;const n=await ge(t);I.value=n,q.value=n.map(l=>l.relativePath||l.originalFilename||l.fileKey),w.value=null,V.value=[],T.value=null,C.value=""}async function Le(){const e=j();if(!e?.select_brand_folder||!e.upload_file_to_java){c.warning("当前桌面端未提供文件夹选择或上传能力");return}try{const t=await e.select_brand_folder();if(!t)return;const n=await Et(t);if(!n.success||!n.items?.length){c.warning(n.error||"该文件夹下没有可用的 xlsx 文件");return}const l=await ge(n.items);I.value=l,q.value=n.items.map(u=>u.relativePath||u.absolutePath),w.value=null,V.value=[],T.value=null,C.value="",c.success(`已选择文件夹内 ${n.items.length} 个 Excel 文件`)}catch(t){c.error(t instanceof Error?t.message:"选择失败")}}async function ne(){try{F.value=await pt();const e=new Set(F.value.map(t=>t.id));_.value!=null&&!e.has(_.value)&&(_.value=null)}catch(e){c.error(e instanceof Error?e.message:"加载筛选条件失败")}}async function Ge(){const e=P.value.trim();if(!e){c.warning("请输入筛选条件");return}Q.value=!0;try{const t=await gt(e);await ne(),t?.id&&(_.value=t.id),c.success("筛选条件已保存")}catch(t){c.error(t instanceof Error?t.message:"保存筛选条件失败")}finally{Q.value=!1}}function He(e){P.value=e.conditionText||""}async function Me(e){try{await ht(e),_.value===e&&(_.value=null),await ne(),c.success("筛选条件已删除")}catch(t){c.error(t instanceof Error?t.message:"删除筛选条件失败")}}async function je(){if(!I.value.length){c.warning("请先选择 Excel");return}const e=fe();if(!e){c.warning("请输入筛选条件,或在备选区选择一个筛选条件");return}if(!Y()){c.warning("请先在左上角设置中填写货源查询密钥");return}O.value=!0;try{const t=I.value.map(l=>({fileKey:l.fileKey,originalFilename:l.originalFilename,relativePath:l.relativePath})),n=await yt(t,e,Y());w.value=n,T.value=null,V.value=[],C.value="",c.success(`解析完成,共 ${n.acceptedRows}`)}catch(t){c.error(t instanceof Error?t.message:"解析失败")}finally{O.value=!1}}async function qe(){const e=j(),t=w.value,n=t?.taskId;if(!n){c.warning("请先解析文件");return}if(!e?.enqueue_json){c.error("当前环境未启用 pywebview enqueue_json");return}if(!Y()){c.warning("请先在左上角设置中填写货源查询密钥");return}J.value=!0;try{const l={type:"similar-asin-run",ts:Date.now(),data:{taskId:n,prompt:t.aiPrompt||fe(),api_key:Y(),sourceFileCount:t.sourceFileCount||0,totalRows:t.totalRows||0,acceptedRows:t.acceptedRows||0,groupCount:t.groupCount||0}};C.value=JSON.stringify(xe(l),null,2),await _t(n);const u=await e.enqueue_json(l);if(!u?.success){c.error(u?.error||"推送失败");return}T.value=De(t),ze(n),Ve(),await W(),await X({force:!0}),c.success("已推送到 Python 队列")}finally{J.value=!1}}function Ve(){w.value=null,V.value=[],C.value=""}function ze(e){p.value.includes(e)||(p.value=[...p.value,e],b()),L()}function le(e){p.value=p.value.filter(t=>t!==e),b()}function Ke(e){f.value.includes(e)||(f.value=[...f.value,e],b()),L()}function oe(e){f.value=f.value.filter(t=>t!==e),b()}function L(){x||g.value==null&&Oe(!0)}function he(){g.value!=null&&(U.clearTimer("task-poll",g.value),g.value=null)}function Oe(e=!1){if(x)return;if(g.value!=null){if(!e)return;U.clearTimer("task-poll",g.value),g.value=null}const t=async()=>{g.value=null,!x&&(!p.value.length&&!f.value.length||(await Je(),!x&&g.value==null&&(p.value.length||f.value.length)&&(g.value=U.setTimeout("task-poll",t,Se()))))};e?t():g.value=U.setTimeout("task-poll",t,Se())}async function Je(){if(te.value||!p.value.length&&!f.value.length){!p.value.length&&!f.value.length&&he();return}te.value=!0;try{let e=!1,t=!1;const n=Array.from(new Set([...p.value,...f.value]));if(n.length){const l=await It(n,{force:f.value.length>0});for(const u of l.items||[]){const v=u.task;if(!v?.id)continue;const a=u.items?.[0];if(a&&Qe(a),(v.status==="SUCCESS"||v.status==="FAILED")&&(le(v.id),e=!0,v.status==="SUCCESS"?Ke(v.id):oe(v.id)),a&&v.status==="SUCCESS"&&f.value.includes(v.id)){const k=(a.fileStatus||"").toUpperCase();(a.fileReady||k==="SUCCESS"||k==="FAILED")&&(oe(v.id),e=!0,t=!0)}}l.missingTaskIds?.length&&(l.missingTaskIds.forEach(u=>{le(u),oe(u)}),t=!0,e=!0)}e&&await W(),t&&await X(),Ye()}finally{te.value=!1}}function Qe(e){if(!e.taskId&&!e.resultId)return;const t=h.value.findIndex(n=>e.resultId!=null&&n.resultId===e.resultId||e.taskId!=null&&n.taskId===e.taskId);t>=0?h.value[t]={...h.value[t],...e}:h.value=[e,...h.value]}function Ye(){if(!f.value.length)return;const e=[];for(const t of f.value){const n=h.value.find(v=>v.taskId===t);if(!n){e.push(t);continue}const l=(n.taskStatus||"").toUpperCase(),u=(n.fileStatus||"").toUpperCase();l==="FAILED"||n.fileReady||u==="SUCCESS"||u==="FAILED"||l==="SUCCESS"&&e.push(t)}f.value=e,b(),f.value.length&&L()}function We(){const e=h.value.filter(t=>t.taskId!=null&&G(t)).map(t=>t.taskId);f.value=Array.from(new Set(e)),b(),f.value.length&&L()}async function W(){D.value=await kt()}async function X(e={}){const t=Date.now();if(!(!e.force&&h.value.length&&t-ue<qs))return N||(N=mt().then(n=>{h.value=n.items||[],ue=Date.now()}).finally(()=>{N=null}),N)}function ye(e){const t=Z(e);return t==="RUNNING"?"执行中":t==="PENDING"?"已解析待推送":G(e)?"结果生成中":ie(e)?"结果生成失败":t==="SUCCESS"||e.success?"已完成":t==="FAILED"?"失败":"等待中"}function Xe(e){const t=Z(e);return t==="RUNNING"||G(e)?"running":ie(e)||t==="FAILED"?"failed":t==="SUCCESS"||e.success?"success":"pending"}function G(e){const t=Z(e),n=(e.fileStatus||"").toUpperCase();return!(t!=="SUCCESS"||ke(e)||n==="FAILED"||n==="SUCCESS")}function Z(e){return(e.taskStatus||"").toUpperCase()}function ie(e){return(e.fileStatus||"").toUpperCase()==="FAILED"}function _e(e){if(ie(e))return e.fileError||"结果文件生成失败,请稍后重试或检查后端日志";if(!G(e))return"";const t=(e.fileStatus||"").toUpperCase();return t==="RUNNING"?"任务已完成,正在等待 Coze 回流并组装结果文件,下载按钮稍后出现":t==="PENDING"?"任务已完成,结果文件已入队,正在等待后端开始处理":"任务已完成,正在生成结果文件,下载按钮稍后出现"}function ke(e){return!!(e.resultId&&(e.fileReady||e.downloadUrl))}function me(e){const t=Number(e.fileProgressPercent||0);return Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t))):0}function Ze(e){return G(e)&&(e.fileProgressTotal||0)>0}async function et(e){if(!e.resultId)return;const t=j();if(!t?.save_file_from_url_new){c.error("当前客户端未提供下载能力");return}const n=e.downloadUrl||wt(e.resultId),l=e.resultFilename||`${e.sourceFilename||"similar-asin"}.xlsx`,u=await t.save_file_from_url_new(n,l);u.success?c.success(`已保存: ${u.path||l}`):u.error&&u.error!=="用户取消"&&c.error(u.error)}async function we(e){try{e.taskStatus==="RUNNING"&&e.taskId?(await Ct(e.taskId),le(e.taskId)):e.resultId&&await bt(e.resultId),await W(),await X({force:!0}),c.success("已删除")}catch(t){c.error(t instanceof Error?t.message:"删除失败")}}return st(async()=>{$e(),await Promise.all([ne().catch(()=>{}),ve().catch(()=>{}),W().catch(()=>{}),X().catch(()=>{})]),We(),(p.value.length||f.value.length)&&L()}),at(()=>{x=!0,he(),U.clearScope()}),(e,t)=>{const n=it,l=rt,u=dt,v=ft;return o(),i("div",At,[m(nt,{active:"similar-asin"}),s("div",Nt,[s("aside",xt,[t[8]||(t[8]=s("div",{class:"section-title"},"上传文件",-1)),s("div",Ut,[t[4]||(t[4]=s("div",{class:"hint"},"选择 Excel 后点击解析,后端会提取 id、ASIN、国家、价格每一行都会独立送检。",-1)),s("div",{class:"btns"},[s("button",{type:"button",class:"opt-btn",onClick:Be},"选择 Excel"),s("button",{type:"button",class:"opt-btn",onClick:Le},"选择文件夹")]),s("div",Dt,[q.value.length?(o(!0),i(H,{key:1},M(q.value,a=>(o(),i("span",{key:a},r(a),1))),128)):(o(),i("span",$t,"暂未选择文件"))])]),s("div",Bt,[t[5]||(t[5]=s("div",{class:"section-title"},"筛选条件",-1)),Ce(s("textarea",{"onUpdate:modelValue":t[0]||(t[0]=a=>P.value=a),class:"prompt-input",rows:"4",placeholder:"请输入筛选条件"},null,512),[[lt,P.value]]),s("div",Lt,[s("button",{type:"button",class:"opt-btn",disabled:Q.value,onClick:Ge},r(Q.value?"保存中...":"保存"),9,Gt)]),t[6]||(t[6]=s("div",{class:"section-title condition-list-title"},"备选区",-1)),F.value.length?(o(),i("ul",Mt,[(o(!0),i(H,null,M(F.value,a=>(o(),i("li",{key:a.id,class:"condition-item"},[s("label",jt,[Ce(s("input",{"onUpdate:modelValue":t[1]||(t[1]=k=>_.value=k),type:"radio",name:"similar-asin-filter-condition",value:a.id,onChange:k=>He(a)},null,40,qt),[[ot,_.value]]),s("span",{title:a.conditionText},r(a.conditionText),9,Vt)]),s("button",{type:"button",class:"link-danger",onClick:k=>Me(a.id)},"删除",8,zt)]))),128))])):(o(),i("div",Ht,"暂无筛选条件,输入后保存即可加入备选区"))]),s("div",Kt,[s("div",Ot,[t[7]||(t[7]=s("div",{class:"section-title"},"商品类目",-1)),s("div",Jt,[s("button",{type:"button",class:"opt-btn",onClick:Fe},"选择类目"),E.value.length?(o(),i("button",{key:0,type:"button",class:"link-danger",onClick:Ae}," 清空 ")):y("",!0)])]),se.value.length?(o(),i("div",Yt,[(o(!0),i(H,null,M(se.value,a=>(o(),i("span",{key:a.id,class:"category-chip"},r(a.path||a.name),1))),128))])):(o(),i("div",Qt,"暂未选择商品类目"))]),s("div",Wt,[s("button",{type:"button",class:"btn-run",disabled:O.value||!I.value.length,onClick:je},r(O.value?"解析中...":"解析并创建任务"),9,Xt),s("button",{type:"button",class:"btn-run btn-queue",disabled:J.value||!$.value.length,onClick:qe},r(J.value?"推送中...":"推送到 Python 队列"),9,Zt)]),t[9]||(t[9]=s("p",{class:"loading-msg"},"Python 回传字段按 id、asin、国家、价格、标题、图片链接数组提交后端接收分片后按 10 条一批送检,结果区展示真实 Coze 批次进度。",-1)),B.value?(o(),i("div",es,[s("div",null,"任务 ID"+r(B.value.taskId),1),s("div",null,"总行数:"+r(B.value.totalRows)+",有效:"+r(B.value.acceptedRows)+",过滤:"+r(B.value.droppedRows),1)])):y("",!0),C.value?(o(),i("pre",ts,r(C.value),1)):y("",!0)]),s("section",ss,[t[18]||(t[18]=s("div",{class:"panel-header"},"货源查询",-1)),s("div",as,[s("div",ns,[s("div",ls,[t[10]||(t[10]=s("span",{class:"summary-label"},"运行中任务",-1)),s("strong",null,r(D.value.pendingTaskCount),1)]),s("div",os,[t[11]||(t[11]=s("span",{class:"summary-label"},"已结束任务",-1)),s("strong",null,r(D.value.processedTaskCount),1)]),s("div",is,[t[12]||(t[12]=s("span",{class:"summary-label"},"成功任务",-1)),s("strong",null,r(D.value.successTaskCount),1)]),s("div",rs,[t[13]||(t[13]=s("span",{class:"summary-label"},"失败任务",-1)),s("strong",null,r(D.value.failedTaskCount),1)])]),t[17]||(t[17]=s("div",{class:"subsection-title"},"匹配任务",-1)),s("div",us,[s("div",cs,[t[14]||(t[14]=s("span",null,"解析结果",-1)),$.value.length?(o(),i("span",ds,"共 "+r($.value.length)+" 条",1)):y("",!0)]),$.value.length?(o(),be(l,{key:1,data:Ie.value,height:"120",class:"result-table"},{default:ee(()=>[m(n,{prop:"displayId",label:"ID",width:"90"}),m(n,{prop:"asin",label:"ASIN",width:"130"}),m(n,{prop:"country",label:"国家",width:"100"}),m(n,{prop:"price",label:"价格",width:"90"}),m(n,{prop:"title",label:"标题","min-width":"160","show-overflow-tooltip":""}),m(n,{prop:"url",label:"URL","min-width":"160","show-overflow-tooltip":""})]),_:1},8,["data"])):(o(),i("div",fs,"暂无解析结果"))]),s("div",vs,[t[15]||(t[15]=s("div",{class:"result-list-header"},[s("span",null,"当前任务")],-1)),ce.value.length?(o(),i("ul",gs,[(o(!0),i(H,null,M(ce.value,a=>(o(),i("li",{key:`cur-${a.taskId}`,class:"task-item"},[s("div",hs,[s("span",ys,r(a.sourceFilename||"货源查询"),1),s("div",_s,"任务 ID"+r(a.taskId),1),s("div",ks,"行数:"+r(a.rowCount??"-"),1)]),s("div",ms,[s("span",ws,r(ye(a)),1),s("button",{type:"button",class:"btn-delete",onClick:k=>we(a)},"删除",8,Cs)])]))),128))])):(o(),i("div",ps,"暂无当前任务"))]),s("div",bs,[t[16]||(t[16]=s("div",{class:"result-list-header"},[s("span",null,"历史记录")],-1)),de.value.length?(o(),i("ul",Is,[(o(!0),i(H,null,M(de.value,a=>(o(),i("li",{key:`his-${a.resultId}-${a.taskId}`,class:"task-item"},[s("div",Ts,[s("span",Ps,r(a.sourceFilename||"货源查询"),1),s("div",Fs,"任务 ID"+r(a.taskId??"-"),1),a.resultFilename?(o(),i("div",Es,r(a.resultFilename||"下载结果"),1)):y("",!0),_e(a)?(o(),i("div",Rs,r(_e(a)),1)):y("",!0),Ze(a)?(o(),i("div",As,[s("div",Ns,[s("span",null,r(a.fileProgressMessage||"结果生成中"),1),s("span",null,r(me(a))+"%",1)]),s("div",xs,[s("div",{class:"file-progress-bar",style:ut({width:`${me(a)}%`})},null,4)]),s("div",Us,r(a.fileProgressCurrent||0)+"/"+r(a.fileProgressTotal||0),1)])):y("",!0),a.error?(o(),i("div",Ds,"错误:"+r(a.error),1)):y("",!0)]),s("div",$s,[s("span",{class:ct(["status",Xe(a)])},r(ye(a)),3),ke(a)?(o(),i("button",{key:0,type:"button",class:"download",onClick:k=>et(a)},"下载",8,Bs)):y("",!0),a.resultId?(o(),i("button",{key:1,type:"button",class:"btn-delete",onClick:k=>we(a)},"删除",8,Ls)):y("",!0)])]))),128))])):(o(),i("div",Ss,"暂无历史记录"))])])])]),m(v,{modelValue:R.value,"onUpdate:modelValue":t[3]||(t[3]=a=>R.value=a),title:"选择商品类目",width:"560px",class:"category-dialog"},{footer:ee(()=>[s("button",{type:"button",class:"opt-btn",onClick:t[2]||(t[2]=a=>R.value=!1)},"取消"),s("button",{type:"button",class:"btn-run category-confirm",onClick:Ee},"确定")]),default:ee(()=>[s("div",{class:"category-dialog-toolbar"},[t[19]||(t[19]=s("span",{class:"muted"},"可多选,确认后会追加到筛选条件 prompt 后面。",-1)),s("button",{type:"button",class:"link-danger",onClick:Re},"清空选择")]),K.value?(o(),i("div",Gs,"正在加载商品类目...")):z.value.length?(o(),be(u,{key:2,ref_key:"categoryTreeRef",ref:A,class:"category-tree",data:z.value,"node-key":"id","show-checkbox":"","default-expand-all":"",props:{label:"name",children:"children"}},{default:ee(({data:a})=>[s("span",Ms,[s("span",null,r(a.name),1),a.description?(o(),i("span",js,r(a.description),1)):y("",!0)])]),_:1},8,["data"])):(o(),i("div",Hs,"暂无商品类目"))]),_:1},8,["modelValue"])])}}}),zs=Tt(Vs,[["__scopeId","data-v-01e31916"]]);Pt(zs).use(Ft).mount("#app");