jgy-public-component 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,3 @@
1
- (function(f,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@element-plus/icons-vue"),require("vuedraggable"),require("@iconify/vue"),require("xlsx"),require("nprogress")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@element-plus/icons-vue","vuedraggable","@iconify/vue","xlsx","nprogress"],e):(f=typeof globalThis<"u"?globalThis:f||self,e(f.JgyPublicComponent={},f.Vue,f.ElementPlus,f.ElementPlusIconsVue,f.vuedraggable,f.IconifyVue,f.XLSX,f.NProgress))})(this,function(f,e,l,b,oe,le,ie,J){"use strict";function re(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const n=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(i,a,n.get?n:{enumerable:!0,get:()=>t[a]})}}return i.default=t,Object.freeze(i)}const D=re(ie),se=["disabled"],ce={key:0,class:"j-button__loading-icon"},de={key:1,class:"j-button__text"},me=e.defineComponent({__name:"JButton",props:{type:{default:"default"},size:{default:"medium"},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:i}){const a=t,n=i;function o(r){!a.disabled&&!a.loading&&n("click",r)}return(r,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["j-button",[`j-button--${t.type}`,`j-button--${t.size}`,{"j-button--plain":t.plain,"j-button--round":t.round,"j-button--disabled":t.disabled,"j-button--loading":t.loading}]]),disabled:t.disabled||t.loading,onClick:o},[t.loading?(e.openBlock(),e.createElementBlock("span",ce)):e.createCommentVNode("",!0),r.$slots.default?(e.openBlock(),e.createElementBlock("span",de,[e.renderSlot(r.$slots,"default",{},void 0,!0)])):e.createCommentVNode("",!0)],10,se))}}),M=(t,i)=>{const a=t.__vccOpts||t;for(const[n,o]of i)a[n]=o;return a},q=M(me,[["__scopeId","data-v-22864824"]]),fe={class:"j-upload-img-container"},pe={key:0,class:"images-wrapper"},ue={class:"image-item"},he=["onClick"],ge={key:0,class:"image-item single-image-item"},ke={class:"image-actions"},ye={key:2,class:"upload-tip"},Ce={key:0},W=M(e.defineComponent({name:"JUploadImg",__name:"JUploadImg",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},limit:{default:9},maxSize:{default:2},accept:{default:"image/jpeg,image/png,image/jpg,image/gif"},tip:{default:"只能上传jpg/png/gif格式的图片,且不超过2MB"},showTip:{type:Boolean,default:!0},uploadFn:{type:Function,default:void 0}},emits:["update:modelValue","success","error"],setup(t,{emit:i}){const a=t,n=i,o=e.ref(""),r=e.ref(!1),c=a.showTip,m=()=>{r.value=!0},d=()=>{o.value="",n("update:modelValue",""),l.ElMessage.success("删除成功")},h=e.ref([]),p=e.ref(!1),$=E=>{h.value=E.map((u,s)=>({uid:Date.now()+s,url:u}))};e.watch(()=>a.modelValue,E=>{a.multiple?Array.isArray(E)&&E.length>0?$(E):h.value=[]:typeof E=="string"?o.value=E:o.value=""},{immediate:!0});const N=()=>{V()},C=E=>{h.value.splice(E,1),V(),l.ElMessage.success("删除成功")},k=async E=>{const u=E.raw;if(!u){l.ElMessage.error("文件不存在,请重试");return}if(u.size>a.maxSize*1024*1024){l.ElMessage.error(`图片大小不能超过 ${a.maxSize}MB`);return}if(!a.uploadFn){l.ElMessage.error("未配置上传函数 (uploadFn)");return}try{p.value=!0;const s=await a.uploadFn(u);a.multiple?(h.value.push({uid:Date.now(),url:s}),V()):(o.value=s,n("update:modelValue",s)),n("success",s),l.ElMessage.success("上传成功")}catch(s){console.error("上传出错:",s),l.ElMessage.error("上传失败,请重试"),n("error",s)}finally{p.value=!1}},V=()=>{const E=h.value.map(u=>u.url);n("update:modelValue",E)};return(E,u)=>(e.openBlock(),e.createElementBlock("div",fe,[t.multiple?(e.openBlock(),e.createElementBlock("div",pe,[e.createVNode(e.unref(oe),{modelValue:h.value,"onUpdate:modelValue":u[0]||(u[0]=s=>h.value=s),class:"images-list","item-key":"uid",animation:200,disabled:t.disabled,onEnd:N},{item:e.withCtx(({element:s,index:y})=>[e.createElementVNode("div",ue,[e.createVNode(e.unref(l.ElImage),{src:s.url,"preview-src-list":h.value.map(B=>B.url),"initial-index":y,fit:"cover",class:"image-preview","preview-teleported":!0,"hide-on-click-modal":!0},null,8,["src","preview-src-list","initial-index"]),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:"delete-btn",onClick:e.withModifiers(B=>C(y),["stop"])},[e.createVNode(e.unref(l.ElIcon),{class:"icon-delete"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Delete))]),_:1})],8,he))])]),_:1},8,["modelValue","disabled"]),!t.disabled&&(!t.limit||h.value.length<t.limit)?(e.openBlock(),e.createBlock(e.unref(l.ElUpload),{key:0,class:"image-uploader","auto-upload":!1,"show-file-list":!1,"on-change":k,disabled:p.value,"list-type":"picture-card",accept:t.accept},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(e.unref(l.ElIcon),{key:1,class:"uploader-icon is-loading"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Loading))]),_:1})):(e.openBlock(),e.createBlock(e.unref(l.ElIcon),{key:0,class:"uploader-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Plus))]),_:1}))]),_:1},8,["disabled","accept"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[o.value?(e.openBlock(),e.createElementBlock("div",ge,[e.createVNode(e.unref(l.ElImage),{src:o.value,fit:"cover",class:"image-preview"},null,8,["src"]),e.createElementVNode("div",ke,[e.createVNode(e.unref(l.ElIcon),{class:"action-icon",onClick:e.withModifiers(m,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ZoomIn))]),_:1}),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(l.ElIcon),{key:0,class:"action-icon",onClick:e.withModifiers(d,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(b.Delete))]),_:1}))])])):(e.openBlock(),e.createBlock(e.unref(l.ElUpload),{key:1,class:"image-uploader","auto-upload":!1,"show-file-list":!1,"on-change":k,disabled:t.disabled||p.value,accept:t.accept,"list-type":"picture-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElIcon),{class:"uploader-icon"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(e.unref(b.Loading),{key:1,class:"is-loading"})):(e.openBlock(),e.createBlock(e.unref(b.Plus),{key:0}))]),_:1})]),_:1},8,["disabled","accept"])),r.value?(e.openBlock(),e.createBlock(e.unref(l.ElImageViewer),{key:2,"url-list":[o.value],teleported:!0,onClose:u[1]||(u[1]=s=>r.value=!1)},null,8,["url-list"])):e.createCommentVNode("",!0)],64)),e.unref(c)?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("span",null,e.toDisplayString(t.tip),1),t.multiple&&t.limit?(e.openBlock(),e.createElementBlock("span",Ce," (最多 "+e.toDisplayString(t.limit)+" 张)",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-7dc4f798"]]),_=e.defineComponent({name:"JIconRender",__name:"JIconRender",props:{icon:{},size:{default:24}},setup(t){return(i,a)=>t.icon?(e.openBlock(),e.createBlock(e.unref(le.Icon),e.mergeProps({key:0,icon:t.icon,width:t.size,height:t.size},i.$attrs),null,16,["icon","width","height"])):e.createCommentVNode("",!0)}}),we={class:"action-left"},X=M(e.defineComponent({name:"JSearchHeader",__name:"JSearchHeader",props:{selectedCount:{default:0},addText:{default:"新增"},defaultVisible:{default:5},showAdd:{type:Boolean,default:!0},showBatchDelete:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showReset:{type:Boolean,default:!0}},emits:["search","reset","add","batchDelete"],setup(t,{emit:i}){const a=t,n=i,o=e.ref(),r=e.ref(!1),c=e.ref(!1),m=e.ref(0),d=e.ref(0),h=e.computed(()=>m.value>a.defaultVisible),p=()=>{if(!o.value)return;const C=Array.from(o.value.children);m.value=C.length;const k=C[a.defaultVisible-1];if(k&&o.value){const V=o.value.getBoundingClientRect(),E=k.getBoundingClientRect();d.value=E.bottom-V.top}},$=()=>{const C=o.value;if(C)if(r.value)p(),r.value=!1,C.style.maxHeight=C.scrollHeight+"px",C.offsetHeight,C.style.maxHeight=d.value+"px";else{r.value=!0,C.style.maxHeight=C.scrollHeight+"px";const k=()=>{C.style.maxHeight="none",C.removeEventListener("transitionend",k)};C.addEventListener("transitionend",k)}};let N=null;return e.onMounted(()=>{p(),h.value&&o.value&&(o.value.style.maxHeight=d.value+"px"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c.value=!0})}),o.value&&(N=new MutationObserver(()=>{p(),h.value&&!r.value&&o.value&&(o.value.style.maxHeight=d.value+"px")}),N.observe(o.value,{childList:!0}))}),e.onBeforeUnmount(()=>{N==null||N.disconnect()}),(C,k)=>(e.openBlock(),e.createBlock(e.unref(l.ElCard),{shadow:"never",class:"j-search-header-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElForm),{inline:"",class:"search-form"},{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"formItemsRef",ref:o,class:e.normalizeClass(["form-items-wrapper",{"is-animated":c.value}])},[e.renderSlot(C.$slots,"default",{},void 0,!0)],2)]),_:3}),e.createElementVNode("div",{class:"action-bar",style:e.normalizeStyle({marginTop:r.value?"0px":"10px"})},[e.createElementVNode("div",we,[t.showAdd?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:0,type:"primary",icon:e.unref(b.Plus),onClick:k[0]||(k[0]=V=>n("add"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.addText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),t.showBatchDelete?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:1,type:"danger",icon:e.unref(b.Delete),disabled:t.selectedCount===0,onClick:k[1]||(k[1]=V=>n("batchDelete"))},{default:e.withCtx(()=>[e.createTextVNode(" 批量删除"+e.toDisplayString(t.selectedCount?`(${t.selectedCount})`:""),1)]),_:1},8,["icon","disabled"])):e.createCommentVNode("",!0),t.showSearch?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:2,type:"primary",icon:e.unref(b.Search),onClick:k[2]||(k[2]=V=>n("search"))},{default:e.withCtx(()=>[...k[4]||(k[4]=[e.createTextVNode("搜索",-1)])]),_:1},8,["icon"])):e.createCommentVNode("",!0),t.showReset?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:3,icon:e.unref(b.Refresh),onClick:k[3]||(k[3]=V=>n("reset"))},{default:e.withCtx(()=>[...k[5]||(k[5]=[e.createTextVNode("重置",-1)])]),_:1},8,["icon"])):e.createCommentVNode("",!0),e.renderSlot(C.$slots,"actions",{},void 0,!0)]),h.value?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:0,link:"",type:"primary",onClick:$},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value?"收起":"展开")+" ",1),e.createVNode(e.unref(l.ElIcon),{class:e.normalizeClass(["toggle-icon",{"is-expanded":r.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(b.ArrowDown))]),_:1},8,["class"])]),_:1})):e.createCommentVNode("",!0)],4)]),_:3}))}}),[["__scopeId","data-v-c1f4bf4c"]]),Ee={class:"j-import-upload-row"},Be={class:"j-import-stat-num"},be={class:"j-import-stat-num"},Ve={class:"j-import-stat-num"},Ne={key:0,class:"j-import-status-fail"},xe={key:1},K=M(e.defineComponent({name:"JImportExcel",__name:"JImportExcel",props:e.mergeModels({getFieldListApi:{},importApi:{},excludeFields:{default:()=>["id","ctime","mtime"]},title:{default:"Excel 批量导入"}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["success"],["update:modelValue"]),setup(t,{emit:i}){const a=t,n=i,o=e.useModel(t,"modelValue"),r=e.ref(!1),c=e.ref({}),m=e.ref([]),d=e.ref({total:0,success:0,fail:0}),h={0:"待创建",1:"创建成功",2:"创建中",[-1]:"创建失败"},p=e.computed(()=>Object.entries(c.value).filter(([u])=>!a.excludeFields.includes(u)).map(([u,s])=>({id:u,label:s,prop:u}))),$=async()=>{try{const u=await a.getFieldListApi();c.value=u.data.tableFieldsInfo??{}}catch{l.ElMessage.error("获取字段列表失败")}},N=u=>{const s=u.raw;if(!s)return;if(!["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel"].includes(s.type)&&!s.name.match(/\.xlsx?$/i)){l.ElMessage.warning("请上传 .xlsx 或 .xls 格式文件");return}const B=new FileReader;B.onload=g=>{try{const j=D.read(g.target.result,{type:"binary"}),w=j.SheetNames[0],I=j.Sheets[w],A=D.utils.sheet_to_json(I,{header:1,defval:""}).slice(1).filter(R=>R.some(T=>T!==""));if(!A.length){l.ElMessage.warning("文件内容为空");return}const S=A.map(R=>{const T={_status:0,_error:""};return p.value.forEach((U,ne)=>{T[U.prop]=R[ne]!==void 0?R[ne]:""}),T});m.value=S,d.value={total:S.length,success:0,fail:0}}catch{l.ElMessage.error("解析文件失败,请检查文件格式")}},B.readAsBinaryString(s)},C=u=>{m.value.splice(u,1),d.value.total=m.value.length},k=async()=>{const u=m.value.filter(s=>s._status===0).map(({_status:s,_error:y,...B})=>B);if(!u.length){l.ElMessage.warning("没有可导入的数据");return}r.value=!0;try{const s=await a.importApi(u);s.code===1?(m.value.forEach(y=>{y._status===0&&(y._status=1)}),d.value.success=m.value.filter(y=>y._status===1).length,l.ElMessage.success("导入成功"),n("success")):l.ElMessage.error(s.msg||"导入失败")}catch{l.ElMessage.error("导入失败,请重试")}finally{r.value=!1}},V=()=>{try{const u=D.utils.book_new(),s=p.value.map(g=>g.label),y={};s.forEach(g=>y[g]="");const B=D.utils.json_to_sheet([y]);D.utils.book_append_sheet(u,B,"模板"),D.writeFile(u,"导入模板.xlsx")}catch{l.ElMessage.error("模板下载失败")}},E=()=>{r.value||(o.value=!1,m.value=[],d.value={total:0,success:0,fail:0})};return(u,s)=>(e.openBlock(),e.createBlock(e.unref(l.ElDialog),{modelValue:o.value,"onUpdate:modelValue":s[0]||(s[0]=y=>o.value=y),title:a.title,width:"900px","close-on-click-modal":!1,onOpen:$,onClose:E},{footer:e.withCtx(()=>[e.createVNode(e.unref(l.ElButton),{onClick:E},{default:e.withCtx(()=>[...s[9]||(s[9]=[e.createTextVNode("关闭",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(l.ElCard),{shadow:"never",class:"j-import-upload-card"},{default:e.withCtx(()=>[s[3]||(s[3]=e.createElementVNode("div",{class:"j-import-upload-card-title"},"导入 EXCEL",-1)),e.createVNode(e.unref(l.ElDivider),{style:{margin:"10px 0"}}),e.createElementVNode("div",Ee,[e.createVNode(e.unref(l.ElUpload),{accept:".xlsx,.xls","auto-upload":!1,"show-file-list":!1,"on-change":N},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElButton),{size:"small"},{default:e.withCtx(()=>[...s[1]||(s[1]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1}),p.value.length?(e.openBlock(),e.createBlock(e.unref(l.ElLink),{key:0,type:"primary",class:"j-import-no-wrap",onClick:V},{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createTextVNode(" 下载导入模板.xlsx ",-1)])]),_:1})):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref(l.ElRow),{class:"j-import-stats-row",gutter:20,align:"middle"},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElCol),{span:18},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElRow),{class:"j-import-stats-cols"},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",Be,e.toDisplayString(d.value.total),1),s[4]||(s[4]=e.createElementVNode("div",{class:"j-import-stat-label"},"导入数量",-1))]),_:1}),e.createVNode(e.unref(l.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",be,e.toDisplayString(d.value.fail),1),s[5]||(s[5]=e.createElementVNode("div",{class:"j-import-stat-label"},"失败数量",-1))]),_:1}),e.createVNode(e.unref(l.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",Ve,e.toDisplayString(d.value.success),1),s[6]||(s[6]=e.createElementVNode("div",{class:"j-import-stat-label"},"成功数量",-1))]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(l.ElCol),{span:6,class:"j-import-confirm-col"},{default:e.withCtx(()=>[e.createVNode(e.unref(l.ElButton),{type:"primary",size:"small",loading:r.value,disabled:!m.value.length,onClick:k},{default:e.withCtx(()=>[...s[7]||(s[7]=[e.createTextVNode(" 确认导入 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.createVNode(e.unref(l.ElTable),{data:m.value,border:"",size:"small","max-height":"360",class:"j-import-data-table"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,y=>(e.openBlock(),e.createBlock(e.unref(l.ElTableColumn),{key:y.prop,prop:y.prop,label:y.label,"min-width":120,"show-overflow-tooltip":""},null,8,["prop","label"]))),128)),e.createVNode(e.unref(l.ElTableColumn),{label:"状态",width:"110",align:"center",fixed:"right"},{default:e.withCtx(({row:y})=>[y._status===-1?(e.openBlock(),e.createElementBlock("span",Ne,e.toDisplayString(y._error||"创建失败"),1)):(e.openBlock(),e.createElementBlock("span",xe,e.toDisplayString(h[y._status]),1))]),_:1}),e.createVNode(e.unref(l.ElTableColumn),{label:"操作",width:"80",align:"center",fixed:"right"},{default:e.withCtx(({$index:y,row:B})=>[B._status===0?(e.openBlock(),e.createBlock(e.unref(l.ElButton),{key:0,size:"small",onClick:g=>C(y)},{default:e.withCtx(()=>[...s[8]||(s[8]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]))}}),[["__scopeId","data-v-74dcefaa"]]),Se={class:"j-sidebar__menu-item-title"},F=M(e.defineComponent({name:"JSideMenuItem",__name:"JSideMenuItem",props:{menuItem:{},isCollapse:{type:Boolean},depth:{default:0}},emits:["menu-click"],setup(t,{emit:i}){const a=t,n=i,o=()=>{n("menu-click",a.menuItem)};return(r,c)=>{const m=e.resolveComponent("JSideMenuItem",!0);return t.menuItem.children&&t.menuItem.children.length>0?(e.openBlock(),e.createBlock(e.unref(l.ElSubMenu),{key:0,index:t.menuItem.path,class:e.normalizeClass([`j-sidebar__depth-${t.depth}`])},{title:e.withCtx(()=>[t.menuItem.icon&&t.depth===0?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:t.menuItem.icon},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",Se,e.toDisplayString(t.menuItem.title||t.menuItem.name),1)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menuItem.children,d=>(e.openBlock(),e.createBlock(m,{key:d.path,"menu-item":d,"is-collapse":t.isCollapse,depth:t.depth+1,onMenuClick:c[0]||(c[0]=h=>n("menu-click",h))},null,8,["menu-item","is-collapse","depth"]))),128))]),_:1},8,["index","class"])):(e.openBlock(),e.createBlock(e.unref(l.ElMenuItem),{key:1,index:t.menuItem.path,class:e.normalizeClass([`j-sidebar__depth-${t.depth}`]),onClick:o},{title:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(t.menuItem.title||t.menuItem.name),1)]),default:e.withCtx(()=>[t.menuItem.icon&&t.depth===0?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:t.menuItem.icon},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["index","class"]))}}}),[["__scopeId","data-v-3a990426"]]),$e={class:"j-sidebar__logo"},je={class:"j-sidebar__title"},Me={class:"j-sidebar__menu-wrapper"},Ie={class:"j-sidebar__footer"},z=M(e.defineComponent({name:"JSidebar",__name:"JSidebar",props:{menus:{},activeMenu:{default:""},title:{default:""},collapsedTitle:{default:""},collapsed:{type:Boolean,default:!1},collapsedWidth:{default:80},expandedWidth:{default:200},router:{type:Boolean,default:!0}},emits:["update:collapsed","menu-click"],setup(t,{emit:i}){const a=t,n=i,o=e.ref(a.collapsed);e.watch(()=>a.collapsed,c=>{o.value=c});const r=()=>{o.value=!o.value,n("update:collapsed",o.value)};return(c,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["j-sidebar",o.value?"j-sidebar--collapsed":"j-sidebar--expanded"]),style:e.normalizeStyle({width:o.value?`${t.collapsedWidth}px`:`${t.expandedWidth}px`})},[e.createElementVNode("div",$e,[e.renderSlot(c.$slots,"logo",{collapsed:o.value},()=>{var d;return[e.createElementVNode("h2",je,e.toDisplayString(o.value?t.collapsedTitle||((d=t.title)==null?void 0:d.charAt(0))||"":t.title),1)]},!0)]),e.createElementVNode("div",Me,[e.createVNode(e.unref(l.ElMenu),{"default-active":t.activeMenu,class:"j-sidebar__menu",router:t.router,collapse:o.value,"collapse-transition":!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menus,d=>(e.openBlock(),e.createBlock(F,{key:d.path,"menu-item":d,"is-collapse":o.value,onMenuClick:m[0]||(m[0]=h=>n("menu-click",h))},null,8,["menu-item","is-collapse"]))),128))]),_:1},8,["default-active","router","collapse"])]),e.createElementVNode("div",Ie,[e.renderSlot(c.$slots,"footer",{collapsed:o.value,toggle:r},()=>[e.createElementVNode("button",{class:"j-sidebar__collapse-btn",onClick:r},[e.createVNode(e.unref(_),{icon:o.value?"mdi:chevron-right":"mdi:chevron-left"},null,8,["icon"])])],!0)])],6))}}),[["__scopeId","data-v-a3fac9de"]]),Re={class:"j-admin-layout__right-panel"},Te={class:"j-admin-layout__header"},De={class:"j-admin-layout__header-left"},_e={key:0,class:"j-admin-layout__logo"},Ae={class:"j-admin-layout__header-right"},Je={class:"j-admin-layout__user"},Fe={class:"j-admin-layout__content-container"},G=M(e.defineComponent({name:"JAdminLayout",__name:"JAdminLayout",props:{topMenus:{},sideMenus:{},activeTopMenu:{default:""},activeMenu:{default:""},title:{default:""},logoTitle:{default:""},collapsedTitle:{default:""},collapsed:{type:Boolean,default:!1},username:{default:""},profileText:{default:"个人资料"},logoutText:{default:"退出登录"},sidebarCollapsedWidth:{default:80},sidebarExpandedWidth:{default:200},headerHeight:{default:"50px"},contentPadding:{default:"10px"},contentBackground:{default:"#f0f2f5"},headerBackground:{default:"#ffffff"},showProfile:{type:Boolean,default:!0},showLogout:{type:Boolean,default:!0},hideContentScrollbar:{type:Boolean,default:!1}},emits:["update:collapsed","top-menu-select","side-menu-click","profile","logout"],setup(t,{emit:i}){const a=t,n=i,o=e.computed({get:()=>a.collapsed,set:d=>n("update:collapsed",d)}),r=e.computed(()=>({"--j-admin-layout-header-height":a.headerHeight,"--j-admin-layout-content-padding":a.contentPadding,"--j-admin-layout-content-bg":a.contentBackground,"--j-admin-layout-header-bg":a.headerBackground})),c=d=>{n("top-menu-select",d)},m=d=>{n("side-menu-click",d)};return(d,h)=>(e.openBlock(),e.createElementBlock("div",{class:"j-admin-layout",style:e.normalizeStyle(r.value)},[t.sideMenus.length>0?(e.openBlock(),e.createBlock(e.unref(z),{key:0,collapsed:o.value,"onUpdate:collapsed":h[0]||(h[0]=p=>o.value=p),menus:t.sideMenus,"active-menu":t.activeMenu,title:t.title,"collapsed-title":t.collapsedTitle,"collapsed-width":t.sidebarCollapsedWidth,"expanded-width":t.sidebarExpandedWidth,onMenuClick:m},e.createSlots({_:2},[d.$slots.sidebarFooter?{name:"footer",fn:e.withCtx(({collapsed:p,toggle:$})=>[e.renderSlot(d.$slots,"sidebarFooter",{collapsed:p,toggle:$},void 0,!0)]),key:"0"}:void 0]),1032,["collapsed","menus","active-menu","title","collapsed-title","collapsed-width","expanded-width"])):e.createCommentVNode("",!0),e.createElementVNode("div",Re,[e.createElementVNode("div",Te,[e.createElementVNode("div",De,[t.sideMenus.length===0?(e.openBlock(),e.createElementBlock("div",_e,[e.renderSlot(d.$slots,"logo",{},()=>[e.createElementVNode("h2",null,e.toDisplayString(t.logoTitle||t.title),1)],!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(l.ElMenu),{mode:"horizontal","default-active":t.activeTopMenu,class:"j-admin-layout__top-menu",onSelect:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.topMenus,p=>(e.openBlock(),e.createBlock(e.unref(l.ElMenuItem),{key:p.path,index:p.path},{default:e.withCtx(()=>[p.icon?(e.openBlock(),e.createBlock(e.unref(_),{key:0,icon:p.icon,class:"j-admin-layout__top-menu-icon"},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(p.title||p.name),1)]),_:2},1032,["index"]))),128))]),_:1},8,["default-active"])]),e.createElementVNode("div",Ae,[e.renderSlot(d.$slots,"headerRight",{username:t.username},()=>[t.showProfile||t.showLogout?(e.openBlock(),e.createBlock(e.unref(l.ElDropdown),{key:0},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(l.ElDropdownMenu),null,{default:e.withCtx(()=>[t.showProfile?(e.openBlock(),e.createBlock(e.unref(l.ElDropdownItem),{key:0,onClick:h[1]||(h[1]=p=>n("profile"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.profileText),1)]),_:1})):e.createCommentVNode("",!0),t.showLogout?(e.openBlock(),e.createBlock(e.unref(l.ElDropdownItem),{key:1,onClick:h[2]||(h[2]=p=>n("logout"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.logoutText),1)]),_:1})):e.createCommentVNode("",!0)]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("span",Je,[e.createTextVNode(e.toDisplayString(t.username)+" ",1),e.createVNode(e.unref(l.ElIcon),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.ArrowDown))]),_:1})])]),_:1})):e.createCommentVNode("",!0)],!0)])]),e.createElementVNode("div",Fe,[e.renderSlot(d.$slots,"tabs",{},void 0,!0),e.createElementVNode("div",{class:e.normalizeClass(["j-admin-layout__content",{"j-admin-layout__content--scrollbar-hidden":t.hideContentScrollbar}])},[e.renderSlot(d.$slots,"default",{},void 0,!0)],2)])])],4))}}),[["__scopeId","data-v-51b44ebf"]]);function L(t,i){return Array.isArray(t)?t.map(a=>L(a,i)):t!==null&&typeof t=="object"&&!(t instanceof Date)?i(t):t}function Z(t,i=[]){return Object.fromEntries(Object.entries(t).map(([a,n])=>{const o=L(n,c=>Z(c,i));return i.includes(a)?[a,o]:[a.replace(/([A-Z])/g,"_$1").toLowerCase(),o]}))}function Q(t,i=[]){return Object.fromEntries(Object.entries(t).map(([a,n])=>{const o=L(n,c=>Q(c,i));return i.includes(a)?[a,o]:[a.replace(/_([a-z])/g,(c,m)=>m.toUpperCase()),o]}))}function ze(t,i){const a={};for(const n of i)n in t&&(a[n]=t[n]);return a}function Le(t,i){const a={...t};for(const n of i)delete a[n];return a}function O(t){if(t===null||typeof t!="object")return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t.source,t.flags);if(Array.isArray(t))return t.map(a=>O(a));const i={};for(const a of Object.keys(t))i[a]=O(t[a]);return i}function Y(t,i=!1){const a={};for(const[n,o]of Object.entries(t))if(!(o==null||o===""))if(i&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)){const r=Y(o,!0);Object.keys(r).length>0&&(a[n]=r)}else a[n]=o;return a}function P(t,i="",a="."){const n={};for(const[o,r]of Object.entries(t)){const c=i?`${i}${a}${o}`:o;r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)?Object.assign(n,P(r,c,a)):n[c]=r}return n}function Oe(t,i="."){const a={};for(const[n,o]of Object.entries(t)){const r=n.split(i);let c=a;for(let m=0;m<r.length-1;m++){const d=r[m];d in c||(c[d]={}),c=c[d]}c[r[r.length-1]]=o}return a}function He(t){return Object.entries(t).map(([i,a])=>({id:i,label:a,prop:i}))}function v(t,i){if(!t)return null;let a=t.replace(/^@\//,"");a.startsWith("views/")||(a=`views/${a}`),a.endsWith(".vue")||(a=`${a}.vue`);const n=`/src/${a}`;return i[n]??i["/src/views/common/NotFound.vue"]??null}function ee(t){const i=new Map,a=[];return t.forEach(n=>i.set(n.name,{...n,children:[]})),t.forEach(n=>{const o=i.get(n.name);if(!n.parent_name)a.push(o);else{const r=i.get(n.parent_name);r?(r.children??(r.children=[]),r.children.push(o)):a.push(o)}}),a}function H(t,i,a){return t.filter(n=>!a||!n.project||n.project===a).map(n=>{var c;const o={path:n.path,name:n.name,meta:{requiresAuth:n.requiresAuth===1,title:n.title,permissions:n.permissions?n.permissions.split(",").map(m=>m.trim()).filter(Boolean):[],params:n.params?n.params.split("&").map(m=>m.trim()).filter(Boolean):[]}},r=v(n.component,i);return r&&(o.component=r),n.redirect&&(o.redirect=n.redirect),(c=n.children)!=null&&c.length&&(o.children=H(n.children,i,a)),o})}function Ue(t,i,a,n){const o=new Map;t.forEach(c=>o.set(c.name,c));const r=c=>{let m=c.parent_name;const d=new Set;for(;m;){if(m===a)return!0;if(d.has(m))return!1;d.add(m);const h=o.get(m);if(!h)return!1;m=h.parent_name}return!1};return t.filter(c=>c.name!==a&&c.is_show===1&&c.component&&i.includes(c.code)&&r(c)&&(!n||!c.project||c.project===n)).sort((c,m)=>c.sorts-m.sorts)[0]}J.configure({showSpinner:!1});const te=(...t)=>{},ae=(...t)=>{},qe=(...t)=>{console.error("[Router]",...t)};function We(t,i){const{getRouteStore:a,getPermissionStore:n,getUserStore:o,isAuthenticated:r,viewModules:c,homeComponent:m,notFoundComponent:d,projectName:h,layoutRouteName:p="Layout",publicPaths:$=["/login","/register"],loginRouteName:N="login",forbiddenRouteName:C="Forbidden",homeRouteName:k="Home",homeRoutePath:V="home",homeTitle:E="首页",noPermissionMessage:u="暂无权限"}=i;let s=!1;function y(g){const w=ee(g).find(x=>x.name===p),I=w!=null&&w.children?H(w.children,c,h):[];I.forEach(x=>{x.name&&t.hasRoute(x.name)||(t.addRoute(p,x),te(`Add route: ${String(x.name)} -> ${x.path}`))}),t.hasRoute(k)||t.addRoute(p,{path:V,name:k,component:m,meta:{title:E}}),t.hasRoute("NotFound")||t.addRoute({path:"/:pathMatch(.*)*",name:"NotFound",component:d}),te(`Dynamic routes added: ${I.length}`)}function B(g,j){if(g===k){j();return}t.hasRoute(k)?j({name:k,replace:!0}):j()}return t.beforeEach(async(g,j,w)=>{if(J.start(),r()&&!s)try{const S=a(),R=n();if(await S.initRoutes(),await R.loadUserPermissions(),y(S.backendRoutes),s=!0,g.path==="/"||g.path===""){B(g.name,w);return}if(g.name===p){B(g.name,w);return}const T=S.backendRoutes.find(U=>U.name===g.name);if(T&&!R.routePermissions.includes(T.code)){ae("No route permission:",g.path),w({name:C,replace:!0});return}w({path:g.path,query:g.query,hash:g.hash,replace:!0});return}catch(S){qe("Failed to load route permissions:",S),s=!1,await o().logout(),w({name:N,replace:!0});return}if($.includes(g.path)){r()?w({path:"/",replace:!0}):w();return}if(!r()){w({name:N,replace:!0});return}const I=n(),x=a();if(g.name===k){w();return}if(I.routePermissions.length===0){g.path!=="/"?(l.ElMessage.warning(u),w({path:"/",replace:!0})):B(g.name,w);return}if(g.path==="/"){B(g.name,w);return}if(g.name===p){B(g.name,w);return}const A=x.backendRoutes.find(S=>S.name===g.name);if(A&&!I.routePermissions.includes(A.code)){ae("No route permission:",g.path),w({name:C,replace:!0});return}w()}),t.afterEach(()=>J.done()),{resetRouterState:()=>{s=!1}}}const Xe=[q,W,_,X,K,z,F,G],Ke={install:t=>{Xe.forEach(i=>{t.component(i.name??i.__name??"",i)})}};f.JAdminLayout=G,f.JButton=q,f.JIconRender=_,f.JImportExcel=K,f.JSearchHeader=X,f.JSideMenuItem=F,f.JSidebar=z,f.JUploadImg=W,f.buildRouteTree=ee,f.createRouterGuard=We,f.deepClone=O,f.default=Ke,f.filterEmpty=Y,f.findFirstAllowedRoute=Ue,f.flatten=P,f.getComponentImport=v,f.omit=Le,f.pick=ze,f.toCamelCase=Q,f.toSnakeCase=Z,f.toTableColumns=He,f.transformBackendRoutes=H,f.unflatten=Oe,Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(C,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@element-plus/icons-vue"),require("vuedraggable"),require("@iconify/vue"),require("xlsx"),require("nprogress")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@element-plus/icons-vue","vuedraggable","@iconify/vue","xlsx","nprogress"],e):(C=typeof globalThis<"u"?globalThis:C||self,e(C.JgyPublicComponent={},C.Vue,C.ElementPlus,C.ElementPlusIconsVue,C.vuedraggable,C.IconifyVue,C.XLSX,C.NProgress))})(this,function(C,e,a,F,Ae,ze,Fe,X){"use strict";function Le(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(s,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return s.default=t,Object.freeze(s)}const H=Le(Fe),qe=["disabled"],Je={key:0,class:"j-button__loading-icon"},Oe={key:1,class:"j-button__text"},Ue=e.defineComponent({__name:"JButton",props:{type:{default:"default"},size:{default:"medium"},plain:{type:Boolean,default:!1},round:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:s}){const o=t,r=s;function i(d){!o.disabled&&!o.loading&&r("click",d)}return(d,u)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["j-button",[`j-button--${t.type}`,`j-button--${t.size}`,{"j-button--plain":t.plain,"j-button--round":t.round,"j-button--disabled":t.disabled,"j-button--loading":t.loading}]]),disabled:t.disabled||t.loading,onClick:i},[t.loading?(e.openBlock(),e.createElementBlock("span",Je)):e.createCommentVNode("",!0),d.$slots.default?(e.openBlock(),e.createElementBlock("span",Oe,[e.renderSlot(d.$slots,"default",{},void 0,!0)])):e.createCommentVNode("",!0)],10,qe))}}),J=(t,s)=>{const o=t.__vccOpts||t;for(const[r,i]of s)o[r]=i;return o},ne=J(Ue,[["__scopeId","data-v-22864824"]]),He={class:"j-upload-img-container"},We={key:0,class:"images-wrapper"},Ke={class:"image-item"},Xe=["onClick"],Qe={key:0,class:"image-item single-image-item"},Ge={class:"image-actions"},Ye={key:2,class:"upload-tip"},Ze={key:0},re=J(e.defineComponent({name:"JUploadImg",__name:"JUploadImg",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},limit:{default:9},maxSize:{default:2},accept:{default:"image/jpeg,image/png,image/jpg,image/gif"},tip:{default:"只能上传jpg/png/gif格式的图片,且不超过2MB"},showTip:{type:Boolean,default:!0},uploadFn:{type:Function,default:void 0}},emits:["update:modelValue","success","error"],setup(t,{emit:s}){const o=t,r=s,i=e.ref(""),d=e.ref(!1),u=o.showTip,y=()=>{d.value=!0},f=()=>{i.value="",r("update:modelValue",""),a.ElMessage.success("删除成功")},N=e.ref([]),p=e.ref(!1),T=B=>{N.value=B.map((V,g)=>({uid:Date.now()+g,url:V}))};e.watch(()=>o.modelValue,B=>{o.multiple?Array.isArray(B)&&B.length>0?T(B):N.value=[]:typeof B=="string"?i.value=B:i.value=""},{immediate:!0});const M=()=>{I()},w=B=>{N.value.splice(B,1),I(),a.ElMessage.success("删除成功")},k=async B=>{const V=B.raw;if(!V){a.ElMessage.error("文件不存在,请重试");return}if(V.size>o.maxSize*1024*1024){a.ElMessage.error(`图片大小不能超过 ${o.maxSize}MB`);return}if(!o.uploadFn){a.ElMessage.error("未配置上传函数 (uploadFn)");return}try{p.value=!0;const g=await o.uploadFn(V);o.multiple?(N.value.push({uid:Date.now(),url:g}),I()):(i.value=g,r("update:modelValue",g)),r("success",g),a.ElMessage.success("上传成功")}catch(g){console.error("上传出错:",g),a.ElMessage.error("上传失败,请重试"),r("error",g)}finally{p.value=!1}},I=()=>{const B=N.value.map(V=>V.url);r("update:modelValue",B)};return(B,V)=>(e.openBlock(),e.createElementBlock("div",He,[t.multiple?(e.openBlock(),e.createElementBlock("div",We,[e.createVNode(e.unref(Ae),{modelValue:N.value,"onUpdate:modelValue":V[0]||(V[0]=g=>N.value=g),class:"images-list","item-key":"uid",animation:200,disabled:t.disabled,onEnd:M},{item:e.withCtx(({element:g,index:x})=>[e.createElementVNode("div",Ke,[e.createVNode(e.unref(a.ElImage),{src:g.url,"preview-src-list":N.value.map(E=>E.url),"initial-index":x,fit:"cover",class:"image-preview","preview-teleported":!0,"hide-on-click-modal":!0},null,8,["src","preview-src-list","initial-index"]),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:"delete-btn",onClick:e.withModifiers(E=>w(x),["stop"])},[e.createVNode(e.unref(a.ElIcon),{class:"icon-delete"},{default:e.withCtx(()=>[e.createVNode(e.unref(F.Delete))]),_:1})],8,Xe))])]),_:1},8,["modelValue","disabled"]),!t.disabled&&(!t.limit||N.value.length<t.limit)?(e.openBlock(),e.createBlock(e.unref(a.ElUpload),{key:0,class:"image-uploader","auto-upload":!1,"show-file-list":!1,"on-change":k,disabled:p.value,"list-type":"picture-card",accept:t.accept},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(e.unref(a.ElIcon),{key:1,class:"uploader-icon is-loading"},{default:e.withCtx(()=>[e.createVNode(e.unref(F.Loading))]),_:1})):(e.openBlock(),e.createBlock(e.unref(a.ElIcon),{key:0,class:"uploader-icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(F.Plus))]),_:1}))]),_:1},8,["disabled","accept"])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[i.value?(e.openBlock(),e.createElementBlock("div",Qe,[e.createVNode(e.unref(a.ElImage),{src:i.value,fit:"cover",class:"image-preview"},null,8,["src"]),e.createElementVNode("div",Ge,[e.createVNode(e.unref(a.ElIcon),{class:"action-icon",onClick:e.withModifiers(y,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(F.ZoomIn))]),_:1}),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(a.ElIcon),{key:0,class:"action-icon",onClick:e.withModifiers(f,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(F.Delete))]),_:1}))])])):(e.openBlock(),e.createBlock(e.unref(a.ElUpload),{key:1,class:"image-uploader","auto-upload":!1,"show-file-list":!1,"on-change":k,disabled:t.disabled||p.value,accept:t.accept,"list-type":"picture-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElIcon),{class:"uploader-icon"},{default:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(e.unref(F.Loading),{key:1,class:"is-loading"})):(e.openBlock(),e.createBlock(e.unref(F.Plus),{key:0}))]),_:1})]),_:1},8,["disabled","accept"])),d.value?(e.openBlock(),e.createBlock(e.unref(a.ElImageViewer),{key:2,"url-list":[i.value],teleported:!0,onClose:V[1]||(V[1]=g=>d.value=!1)},null,8,["url-list"])):e.createCommentVNode("",!0)],64)),e.unref(u)?(e.openBlock(),e.createElementBlock("div",Ye,[e.createElementVNode("span",null,e.toDisplayString(t.tip),1),t.multiple&&t.limit?(e.openBlock(),e.createElementBlock("span",Ze," (最多 "+e.toDisplayString(t.limit)+" 张)",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-7dc4f798"]]),W=e.defineComponent({name:"JIconRender",__name:"JIconRender",props:{icon:{},size:{default:24}},setup(t){return(s,o)=>t.icon?(e.openBlock(),e.createBlock(e.unref(ze.Icon),e.mergeProps({key:0,icon:t.icon,width:t.size,height:t.size},s.$attrs),null,16,["icon","width","height"])):e.createCommentVNode("",!0)}}),Pe={class:"action-left"},ie=J(e.defineComponent({name:"JSearchHeader",__name:"JSearchHeader",props:{selectedCount:{default:0},addText:{default:"新增"},defaultVisible:{default:5},showAdd:{type:Boolean,default:!0},showBatchDelete:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showReset:{type:Boolean,default:!0}},emits:["search","reset","add","batchDelete"],setup(t,{emit:s}){const o=t,r=s,i=e.ref(),d=e.ref(!1),u=e.ref(!1),y=e.ref(0),f=e.ref(0),N=e.computed(()=>y.value>o.defaultVisible),p=()=>{if(!i.value)return;const w=Array.from(i.value.children);y.value=w.length;const k=w[o.defaultVisible-1];if(k&&i.value){const I=i.value.getBoundingClientRect(),B=k.getBoundingClientRect();f.value=B.bottom-I.top}},T=()=>{const w=i.value;if(w)if(d.value)p(),d.value=!1,w.style.maxHeight=w.scrollHeight+"px",w.offsetHeight,w.style.maxHeight=f.value+"px";else{d.value=!0,w.style.maxHeight=w.scrollHeight+"px";const k=()=>{w.style.maxHeight="none",w.removeEventListener("transitionend",k)};w.addEventListener("transitionend",k)}};let M=null;return e.onMounted(()=>{p(),N.value&&i.value&&(i.value.style.maxHeight=f.value+"px"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{u.value=!0})}),i.value&&(M=new MutationObserver(()=>{p(),N.value&&!d.value&&i.value&&(i.value.style.maxHeight=f.value+"px")}),M.observe(i.value,{childList:!0}))}),e.onBeforeUnmount(()=>{M==null||M.disconnect()}),(w,k)=>(e.openBlock(),e.createBlock(e.unref(a.ElCard),{shadow:"never",class:"j-search-header-card"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElForm),{inline:"",class:"search-form"},{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"formItemsRef",ref:i,class:e.normalizeClass(["form-items-wrapper",{"is-animated":u.value}])},[e.renderSlot(w.$slots,"default",{},void 0,!0)],2)]),_:3}),e.createElementVNode("div",{class:"action-bar",style:e.normalizeStyle({marginTop:d.value?"0px":"10px"})},[e.createElementVNode("div",Pe,[t.showAdd?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:0,type:"primary",icon:e.unref(F.Plus),onClick:k[0]||(k[0]=I=>r("add"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.addText),1)]),_:1},8,["icon"])):e.createCommentVNode("",!0),t.showBatchDelete?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:1,type:"danger",icon:e.unref(F.Delete),disabled:t.selectedCount===0,onClick:k[1]||(k[1]=I=>r("batchDelete"))},{default:e.withCtx(()=>[e.createTextVNode(" 批量删除"+e.toDisplayString(t.selectedCount?`(${t.selectedCount})`:""),1)]),_:1},8,["icon","disabled"])):e.createCommentVNode("",!0),t.showSearch?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:2,type:"primary",icon:e.unref(F.Search),onClick:k[2]||(k[2]=I=>r("search"))},{default:e.withCtx(()=>[...k[4]||(k[4]=[e.createTextVNode("搜索",-1)])]),_:1},8,["icon"])):e.createCommentVNode("",!0),t.showReset?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:3,icon:e.unref(F.Refresh),onClick:k[3]||(k[3]=I=>r("reset"))},{default:e.withCtx(()=>[...k[5]||(k[5]=[e.createTextVNode("重置",-1)])]),_:1},8,["icon"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"actions",{},void 0,!0)]),N.value?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:0,link:"",type:"primary",onClick:T},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.value?"收起":"展开")+" ",1),e.createVNode(e.unref(a.ElIcon),{class:e.normalizeClass(["toggle-icon",{"is-expanded":d.value}])},{default:e.withCtx(()=>[e.createVNode(e.unref(F.ArrowDown))]),_:1},8,["class"])]),_:1})):e.createCommentVNode("",!0)],4)]),_:3}))}}),[["__scopeId","data-v-c1f4bf4c"]]),ve={class:"j-import-upload-row"},et={class:"j-import-stat-num"},tt={class:"j-import-stat-num"},at={class:"j-import-stat-num"},lt={key:0,class:"j-import-status-fail"},ot={key:1},ce=J(e.defineComponent({name:"JImportExcel",__name:"JImportExcel",props:e.mergeModels({getFieldListApi:{},importApi:{},excludeFields:{default:()=>["id","ctime","mtime"]},title:{default:"Excel 批量导入"}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["success"],["update:modelValue"]),setup(t,{emit:s}){const o=t,r=s,i=e.useModel(t,"modelValue"),d=e.ref(!1),u=e.ref({}),y=e.ref([]),f=e.ref({total:0,success:0,fail:0}),N={0:"待创建",1:"创建成功",2:"创建中",[-1]:"创建失败"},p=e.computed(()=>Object.entries(u.value).filter(([V])=>!o.excludeFields.includes(V)).map(([V,g])=>({id:V,label:g,prop:V}))),T=async()=>{try{const V=await o.getFieldListApi();u.value=V.data.tableFieldsInfo??{}}catch{a.ElMessage.error("获取字段列表失败")}},M=V=>{const g=V.raw;if(!g)return;if(!["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.ms-excel"].includes(g.type)&&!g.name.match(/\.xlsx?$/i)){a.ElMessage.warning("请上传 .xlsx 或 .xls 格式文件");return}const E=new FileReader;E.onload=m=>{try{const R=H.read(m.target.result,{type:"binary"}),D=R.SheetNames[0],j=R.Sheets[D],L=H.utils.sheet_to_json(j,{header:1,defval:""}).slice(1).filter(_=>_.some(z=>z!==""));if(!L.length){a.ElMessage.warning("文件内容为空");return}const S=L.map(_=>{const z={_status:0,_error:""};return p.value.forEach((O,U)=>{z[O.prop]=_[U]!==void 0?_[U]:""}),z});y.value=S,f.value={total:S.length,success:0,fail:0}}catch{a.ElMessage.error("解析文件失败,请检查文件格式")}},E.readAsBinaryString(g)},w=V=>{y.value.splice(V,1),f.value.total=y.value.length},k=async()=>{const V=y.value.filter(g=>g._status===0).map(({_status:g,_error:x,...E})=>E);if(!V.length){a.ElMessage.warning("没有可导入的数据");return}d.value=!0;try{const g=await o.importApi(V);g.code===1?(y.value.forEach(x=>{x._status===0&&(x._status=1)}),f.value.success=y.value.filter(x=>x._status===1).length,a.ElMessage.success("导入成功"),r("success")):a.ElMessage.error(g.msg||"导入失败")}catch{a.ElMessage.error("导入失败,请重试")}finally{d.value=!1}},I=()=>{try{const V=H.utils.book_new(),g=p.value.map(m=>m.label),x={};g.forEach(m=>x[m]="");const E=H.utils.json_to_sheet([x]);H.utils.book_append_sheet(V,E,"模板"),H.writeFile(V,"导入模板.xlsx")}catch{a.ElMessage.error("模板下载失败")}},B=()=>{d.value||(i.value=!1,y.value=[],f.value={total:0,success:0,fail:0})};return(V,g)=>(e.openBlock(),e.createBlock(e.unref(a.ElDialog),{modelValue:i.value,"onUpdate:modelValue":g[0]||(g[0]=x=>i.value=x),title:o.title,width:"900px","close-on-click-modal":!1,onOpen:T,onClose:B},{footer:e.withCtx(()=>[e.createVNode(e.unref(a.ElButton),{onClick:B},{default:e.withCtx(()=>[...g[9]||(g[9]=[e.createTextVNode("关闭",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(e.unref(a.ElCard),{shadow:"never",class:"j-import-upload-card"},{default:e.withCtx(()=>[g[3]||(g[3]=e.createElementVNode("div",{class:"j-import-upload-card-title"},"导入 EXCEL",-1)),e.createVNode(e.unref(a.ElDivider),{style:{margin:"10px 0"}}),e.createElementVNode("div",ve,[e.createVNode(e.unref(a.ElUpload),{accept:".xlsx,.xls","auto-upload":!1,"show-file-list":!1,"on-change":M},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElButton),{size:"small"},{default:e.withCtx(()=>[...g[1]||(g[1]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1}),p.value.length?(e.openBlock(),e.createBlock(e.unref(a.ElLink),{key:0,type:"primary",class:"j-import-no-wrap",onClick:I},{default:e.withCtx(()=>[...g[2]||(g[2]=[e.createTextVNode(" 下载导入模板.xlsx ",-1)])]),_:1})):e.createCommentVNode("",!0)])]),_:1}),e.createVNode(e.unref(a.ElRow),{class:"j-import-stats-row",gutter:20,align:"middle"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElCol),{span:18},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElRow),{class:"j-import-stats-cols"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",et,e.toDisplayString(f.value.total),1),g[4]||(g[4]=e.createElementVNode("div",{class:"j-import-stat-label"},"导入数量",-1))]),_:1}),e.createVNode(e.unref(a.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",tt,e.toDisplayString(f.value.fail),1),g[5]||(g[5]=e.createElementVNode("div",{class:"j-import-stat-label"},"失败数量",-1))]),_:1}),e.createVNode(e.unref(a.ElCol),{span:4,class:"j-import-stat-item"},{default:e.withCtx(()=>[e.createElementVNode("div",at,e.toDisplayString(f.value.success),1),g[6]||(g[6]=e.createElementVNode("div",{class:"j-import-stat-label"},"成功数量",-1))]),_:1})]),_:1})]),_:1}),e.createVNode(e.unref(a.ElCol),{span:6,class:"j-import-confirm-col"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElButton),{type:"primary",size:"small",loading:d.value,disabled:!y.value.length,onClick:k},{default:e.withCtx(()=>[...g[7]||(g[7]=[e.createTextVNode(" 确认导入 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.createVNode(e.unref(a.ElTable),{data:y.value,border:"",size:"small","max-height":"360",class:"j-import-data-table"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,x=>(e.openBlock(),e.createBlock(e.unref(a.ElTableColumn),{key:x.prop,prop:x.prop,label:x.label,"min-width":120,"show-overflow-tooltip":""},null,8,["prop","label"]))),128)),e.createVNode(e.unref(a.ElTableColumn),{label:"状态",width:"110",align:"center",fixed:"right"},{default:e.withCtx(({row:x})=>[x._status===-1?(e.openBlock(),e.createElementBlock("span",lt,e.toDisplayString(x._error||"创建失败"),1)):(e.openBlock(),e.createElementBlock("span",ot,e.toDisplayString(N[x._status]),1))]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"操作",width:"80",align:"center",fixed:"right"},{default:e.withCtx(({$index:x,row:E})=>[E._status===0?(e.openBlock(),e.createBlock(e.unref(a.ElButton),{key:0,size:"small",onClick:m=>w(x)},{default:e.withCtx(()=>[...g[8]||(g[8]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]))}}),[["__scopeId","data-v-74dcefaa"]]),nt={class:"j-sidebar__menu-item-title"},Q=J(e.defineComponent({name:"JSideMenuItem",__name:"JSideMenuItem",props:{menuItem:{},isCollapse:{type:Boolean},depth:{default:0}},emits:["menu-click"],setup(t,{emit:s}){const o=t,r=s,i=()=>{r("menu-click",o.menuItem)};return(d,u)=>{const y=e.resolveComponent("JSideMenuItem",!0);return t.menuItem.children&&t.menuItem.children.length>0?(e.openBlock(),e.createBlock(e.unref(a.ElSubMenu),{key:0,index:t.menuItem.path,class:e.normalizeClass([`j-sidebar__depth-${t.depth}`])},{title:e.withCtx(()=>[t.menuItem.icon&&t.depth===0?(e.openBlock(),e.createBlock(e.unref(W),{key:0,icon:t.menuItem.icon},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",nt,e.toDisplayString(t.menuItem.title||t.menuItem.name),1)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menuItem.children,f=>(e.openBlock(),e.createBlock(y,{key:f.path,"menu-item":f,"is-collapse":t.isCollapse,depth:t.depth+1,onMenuClick:u[0]||(u[0]=N=>r("menu-click",N))},null,8,["menu-item","is-collapse","depth"]))),128))]),_:1},8,["index","class"])):(e.openBlock(),e.createBlock(e.unref(a.ElMenuItem),{key:1,index:t.menuItem.path,class:e.normalizeClass([`j-sidebar__depth-${t.depth}`]),onClick:i},{title:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(t.menuItem.title||t.menuItem.name),1)]),default:e.withCtx(()=>[t.menuItem.icon&&t.depth===0?(e.openBlock(),e.createBlock(e.unref(W),{key:0,icon:t.menuItem.icon},null,8,["icon"])):e.createCommentVNode("",!0)]),_:1},8,["index","class"]))}}}),[["__scopeId","data-v-3a990426"]]),rt={class:"j-sidebar__logo"},it={class:"j-sidebar__title"},ct={class:"j-sidebar__menu-wrapper"},st={class:"j-sidebar__footer"},G=J(e.defineComponent({name:"JSidebar",__name:"JSidebar",props:{menus:{},activeMenu:{default:""},title:{default:""},collapsedTitle:{default:""},collapsed:{type:Boolean,default:!1},collapsedWidth:{default:80},expandedWidth:{default:200},router:{type:Boolean,default:!0}},emits:["update:collapsed","menu-click"],setup(t,{emit:s}){const o=t,r=s,i=e.ref(o.collapsed);e.watch(()=>o.collapsed,u=>{i.value=u});const d=()=>{i.value=!i.value,r("update:collapsed",i.value)};return(u,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["j-sidebar",i.value?"j-sidebar--collapsed":"j-sidebar--expanded"]),style:e.normalizeStyle({width:i.value?`${t.collapsedWidth}px`:`${t.expandedWidth}px`})},[e.createElementVNode("div",rt,[e.renderSlot(u.$slots,"logo",{collapsed:i.value},()=>{var f;return[e.createElementVNode("h2",it,e.toDisplayString(i.value?t.collapsedTitle||((f=t.title)==null?void 0:f.charAt(0))||"":t.title),1)]},!0)]),e.createElementVNode("div",ct,[e.createVNode(e.unref(a.ElMenu),{"default-active":t.activeMenu,class:"j-sidebar__menu",router:t.router,collapse:i.value,"collapse-transition":!1},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menus,f=>(e.openBlock(),e.createBlock(Q,{key:f.path,"menu-item":f,"is-collapse":i.value,onMenuClick:y[0]||(y[0]=N=>r("menu-click",N))},null,8,["menu-item","is-collapse"]))),128))]),_:1},8,["default-active","router","collapse"])]),e.createElementVNode("div",st,[e.renderSlot(u.$slots,"footer",{collapsed:i.value,toggle:d},()=>[e.createElementVNode("button",{class:"j-sidebar__collapse-btn",onClick:d},[e.createVNode(e.unref(W),{icon:i.value?"mdi:chevron-right":"mdi:chevron-left"},null,8,["icon"])])],!0)])],6))}}),[["__scopeId","data-v-a3fac9de"]]),dt={class:"j-admin-layout__right-panel"},pt={class:"j-admin-layout__header"},mt={class:"j-admin-layout__header-left"},ft={key:0,class:"j-admin-layout__logo"},ht={class:"j-admin-layout__header-right"},gt={class:"j-admin-layout__user"},ut={class:"j-admin-layout__content-container"},se=J(e.defineComponent({name:"JAdminLayout",__name:"JAdminLayout",props:{topMenus:{},sideMenus:{},activeTopMenu:{default:""},activeMenu:{default:""},title:{default:""},logoTitle:{default:""},collapsedTitle:{default:""},collapsed:{type:Boolean,default:!1},username:{default:""},profileText:{default:"个人资料"},logoutText:{default:"退出登录"},sidebarCollapsedWidth:{default:80},sidebarExpandedWidth:{default:200},headerHeight:{default:"50px"},contentPadding:{default:"10px"},contentBackground:{default:"#f0f2f5"},headerBackground:{default:"#ffffff"},showProfile:{type:Boolean,default:!0},showLogout:{type:Boolean,default:!0},hideContentScrollbar:{type:Boolean,default:!1}},emits:["update:collapsed","top-menu-select","side-menu-click","profile","logout"],setup(t,{emit:s}){const o=t,r=s,i=e.computed({get:()=>o.collapsed,set:f=>r("update:collapsed",f)}),d=e.computed(()=>({"--j-admin-layout-header-height":o.headerHeight,"--j-admin-layout-content-padding":o.contentPadding,"--j-admin-layout-content-bg":o.contentBackground,"--j-admin-layout-header-bg":o.headerBackground})),u=f=>{r("top-menu-select",f)},y=f=>{r("side-menu-click",f)};return(f,N)=>(e.openBlock(),e.createElementBlock("div",{class:"j-admin-layout",style:e.normalizeStyle(d.value)},[t.sideMenus.length>0?(e.openBlock(),e.createBlock(e.unref(G),{key:0,collapsed:i.value,"onUpdate:collapsed":N[0]||(N[0]=p=>i.value=p),menus:t.sideMenus,"active-menu":t.activeMenu,title:t.title,"collapsed-title":t.collapsedTitle,"collapsed-width":t.sidebarCollapsedWidth,"expanded-width":t.sidebarExpandedWidth,onMenuClick:y},e.createSlots({_:2},[f.$slots.sidebarFooter?{name:"footer",fn:e.withCtx(({collapsed:p,toggle:T})=>[e.renderSlot(f.$slots,"sidebarFooter",{collapsed:p,toggle:T},void 0,!0)]),key:"0"}:void 0]),1032,["collapsed","menus","active-menu","title","collapsed-title","collapsed-width","expanded-width"])):e.createCommentVNode("",!0),e.createElementVNode("div",dt,[e.createElementVNode("div",pt,[e.createElementVNode("div",mt,[t.sideMenus.length===0?(e.openBlock(),e.createElementBlock("div",ft,[e.renderSlot(f.$slots,"logo",{},()=>[e.createElementVNode("h2",null,e.toDisplayString(t.logoTitle||t.title),1)],!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(a.ElMenu),{mode:"horizontal","default-active":t.activeTopMenu,class:"j-admin-layout__top-menu",onSelect:u},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.topMenus,p=>(e.openBlock(),e.createBlock(e.unref(a.ElMenuItem),{key:p.path,index:p.path},{default:e.withCtx(()=>[p.icon?(e.openBlock(),e.createBlock(e.unref(W),{key:0,icon:p.icon,class:"j-admin-layout__top-menu-icon"},null,8,["icon"])):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(p.title||p.name),1)]),_:2},1032,["index"]))),128))]),_:1},8,["default-active"])]),e.createElementVNode("div",ht,[e.renderSlot(f.$slots,"headerRight",{username:t.username},()=>[t.showProfile||t.showLogout?(e.openBlock(),e.createBlock(e.unref(a.ElDropdown),{key:0},{dropdown:e.withCtx(()=>[e.createVNode(e.unref(a.ElDropdownMenu),null,{default:e.withCtx(()=>[t.showProfile?(e.openBlock(),e.createBlock(e.unref(a.ElDropdownItem),{key:0,onClick:N[1]||(N[1]=p=>r("profile"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.profileText),1)]),_:1})):e.createCommentVNode("",!0),t.showLogout?(e.openBlock(),e.createBlock(e.unref(a.ElDropdownItem),{key:1,onClick:N[2]||(N[2]=p=>r("logout"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.logoutText),1)]),_:1})):e.createCommentVNode("",!0)]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("span",gt,[e.createTextVNode(e.toDisplayString(t.username)+" ",1),e.createVNode(e.unref(a.ElIcon),null,{default:e.withCtx(()=>[e.createVNode(e.unref(F.ArrowDown))]),_:1})])]),_:1})):e.createCommentVNode("",!0)],!0)])]),e.createElementVNode("div",ut,[e.renderSlot(f.$slots,"tabs",{},void 0,!0),e.createElementVNode("div",{class:e.normalizeClass(["j-admin-layout__content",{"j-admin-layout__content--scrollbar-hidden":t.hideContentScrollbar}])},[e.renderSlot(f.$slots,"default",{},void 0,!0)],2)])])],4))}}),[["__scopeId","data-v-51b44ebf"]]),Y=Symbol("J_PRODUCT_REQUEST");function yt(t,s){t.provide(Y,s)}function de(){return e.inject(Y,null)}function pe(t,s){const o=t??s??null;if(!o)throw new Error('[JProductDetailDialog] 缺少 request:请在 main.ts 调用 provideProductRequest(app, request),或给组件传入 :request="request"');return o}const kt={class:"pdd-body"},_t=["href"],Ct=["innerHTML"],bt={key:1},wt={key:1},Vt={key:1},Et={class:"pdd-supplier-head"},Nt={class:"pdd-supplier-name"},xt={class:"pdd-supplier-meta"},Bt={class:"pdd-supplier-meta"},Dt={key:1},St={key:1},Tt={key:1},It={key:1},$t=["href"],jt={key:1},me=e.ref([]),Z=e.ref([]),fe=e.ref([]),he=e.ref([]),ge=e.ref([]),ue=e.ref([]);let ye=!1,K=null;const Mt=t=>{const s=(o,r)=>t({url:o,method:"post",data:r});return ye?Promise.resolve():K||(K=Promise.all([s("/bis-app/comm/productAttrValue/getAll",{pageSize:999}).then(o=>{var r,i,d;o.code===1&&(me.value=((r=o.data)==null?void 0:r.brand)||[],Z.value=((i=o.data)==null?void 0:i.unit)||[],fe.value=((d=o.data)==null?void 0:d.sale)||[])}).catch(()=>{}),s("/bis-app/comm/company/list",{pageSize:999,subject_type:"purchase"}).then(o=>{var r;o.code===1&&(he.value=((r=o.data)==null?void 0:r.list)||o.data||[])}).catch(()=>{}),s("/bis-app/comm/tagCategoryValue/list",{tag_code:"PRODUCT_TAG",pageIndex:1,pageSize:999}).then(o=>{var r;o.code===1&&(ge.value=((r=o.data)==null?void 0:r.list)||o.data||[])}).catch(()=>{}),s("/bis-app/comm/customAttr/list",{pageIndex:1,pageSize:999}).then(o=>{var r;o.code===1&&(ue.value=((r=o.data)==null?void 0:r.list)||o.data||[])}).catch(()=>{})]).then(()=>{ye=!0}).finally(()=>{K=null}),K)},Rt=e.defineComponent({name:"JProductDetailDialog",directives:{loading:a.vLoading},__name:"JProductDetailDialog",props:{visible:{type:Boolean,default:!1},code:{default:""},type:{default:"sku"},id:{default:void 0},request:{type:Function,default:void 0}},emits:["update:visible"],setup(t,{emit:s}){const o=t,r=s,i=de(),d=()=>pe(o.request,i),u=(n,c)=>d()({url:n,method:"post",data:c}),y=e.ref(!1),f=e.ref(null),N=async()=>{if(!o.code&&o.id===void 0)return;f.value=null,Mt(d());const n=o.type==="spu"?"/bis-app/comm/spu/doDetail":"/bis-app/comm/sku/doDetail",c=o.type==="spu"?{id:o.id,spu_code:o.code}:{id:o.id,sku_code:o.code};y.value=!0;try{const l=await u(n,c);l.code===1&&l.data?f.value=l.data:a.ElMessage.error(l.msg||"获取详情失败")}catch{a.ElMessage.error("获取详情失败")}finally{y.value=!1}};e.watch(()=>o.visible,n=>{n&&N()});const p=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.basic_info)??f.value??{}}),T=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.spec_info)??{}}),M=e.computed(()=>{var n,c;return((n=f.value)==null?void 0:n.images_info)??((c=f.value)==null?void 0:c.image_info)??{}}),w=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.purchase_info)??{}}),k=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.declaration_info)??{}}),I=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.qc_info)??{}}),B=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.bind_sku_info)??{}}),V=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.spu_bind_sku)??{}}),g=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.spec_box_info)??T.value.spec_box_info??[]}),x=e.computed(()=>{var n;return((n=f.value)==null?void 0:n.sku_supplier)??w.value.supplier_list??[]}),E=e.computed(()=>String(p.value.product_type??(o.type==="spu"?"30":"10"))),m=e.computed(()=>E.value==="30"),R=e.computed(()=>({10:"单品",20:"组合产品",30:"多属性产品"})[E.value]||E.value),D=e.computed(()=>m.value&&p.value.spu_name||p.value.product_name),j=e.computed(()=>m.value&&p.value.spu_name_en||p.value.product_name_en),A=e.computed(()=>m.value?p.value.spu_code:p.value.sku_code),L=n=>{if(n==null||n==="")return[];if(Array.isArray(n))return n.map(String).filter(Boolean);if(typeof n=="string"){const c=n.trim();if(!c)return[];if(c.startsWith("["))try{const l=JSON.parse(c);return Array.isArray(l)?l.map(String).filter(Boolean):[]}catch{}return c.split(",").map(l=>l.trim()).filter(Boolean)}return[String(n)]},S=n=>{let c=[];if(Array.isArray(n))c=n;else if(typeof n=="string"&&n.trim())try{const l=JSON.parse(n);c=Array.isArray(l)?l:[n]}catch{c=[n]}return c.map(l=>{if(typeof l=="string")return{name:l.split("/").pop()||l,url:l};const h=(l==null?void 0:l.url)||(l==null?void 0:l.file_url)||(l==null?void 0:l.path)||"";return{name:(l==null?void 0:l.name)||(l==null?void 0:l.file_name)||h.split("/").pop()||"附件",url:h}}).filter(l=>l.url)},_=n=>n==null||n===""?"—":n,z=(n,c)=>n==null||n===""?"—":`${n} ${c||""}`.trim(),O=(n,c,l,h="cm")=>{if([n,c,l].every($=>$==null||$===""))return"—";const b=$=>$==null||$===""?"—":$;return`${b(n)} × ${b(c)} × ${b(l)} ${h}`},U=(n,c)=>{if(c==null||c==="")return"";const l=n.find(h=>String(h.id)===String(c));return(l==null?void 0:l.attr_value_name)||""},Xt=e.computed(()=>p.value.brand_name||U(me.value,p.value.brand_id)),Qt=e.computed(()=>p.value.unit_name||U(Z.value,p.value.unit_id)),Gt=e.computed(()=>p.value.sale_status_name||p.value.status_name||U(fe.value,p.value.status)),Yt=e.computed(()=>k.value.declaration_unit_name||U(Z.value,k.value.declaration_unit_id)||k.value.declaration_unit_id),Zt=e.computed(()=>{if(p.value.pe_code_name)return p.value.pe_code_name;const n=L(p.value.pe_codes);return n.length?n.map(c=>{var l;return((l=he.value.find(h=>String(h.company_code)===String(c)))==null?void 0:l.company_name)||c}).join("、"):""}),Se=e.computed(()=>L(p.value.tags).map(n=>{const c=ge.value.find(l=>String(l.tag_value_code)===String(n));return{code:n,name:(c==null?void 0:c.tag_value_name)||n,color:(c==null?void 0:c.tag_color)||""}})),Pt=e.computed(()=>{const n=p.value.sku_attr;return!n||typeof n!="object"||Array.isArray(n)?"":Object.entries(n).map(([c,l])=>`${c}: ${l}`).join(";")}),Te=e.computed(()=>S(p.value.att_files)),vt=e.computed(()=>{const n=p.value.product_desc||"";return String(n).replace(/<[^>]*>/g,"").trim().length>0||/<img/i.test(String(n))}),te=e.computed(()=>{var n;return M.value.main_image||((n=f.value)==null?void 0:n.product_image)||""}),ae=e.computed(()=>{var n;return L(M.value.size_images??((n=f.value)==null?void 0:n.size_images))}),le=e.computed(()=>L(M.value.selling_point_images)),ea=e.computed(()=>({spot:"抽检",full:"全检",exempt:"免检"})[I.value.qc_method]||_(I.value.qc_method)),oe=e.computed(()=>L(I.value.images)),Ie=e.computed(()=>S(I.value.att_files)),$e=e.computed(()=>Array.isArray(I.value.qc_content)?I.value.qc_content:[]),je=n=>String(n.custom_attr_id??n.id??n.attr_id??n.attr_code??"").trim(),ta=n=>{const c=Array.isArray(n)?n:n!=null&&n!==""?[n]:[],l=[];for(const h of c)if(typeof h=="string")h.split(/[,,、\n]/).map(b=>b.trim()).filter(Boolean).forEach(b=>l.push({id:"",name:b}));else if(h&&typeof h=="object"){const b=String(h.attr_value??h.value??h.label??h.attr_value_name??h.name??"").trim(),$=String(h.id??h.attr_value_id??h.value_id??"");b&&l.push({id:$,name:b})}return l},aa=e.computed(()=>{const n=new Map;for(const c of ue.value){const l=je(c);l&&n.set(l,c)}return n}),Me=e.computed(()=>{var h;const n=(h=f.value)==null?void 0:h.custom_attr_info,c=(n==null?void 0:n.list)??n;return(Array.isArray(c)?c:[]).map(b=>{const $=je(b),q=aa.value.get($);return{...b,custom_attr_id:$,attr_name:b.attr_name||(q==null?void 0:q.attr_name)||$,options:ta((q==null?void 0:q.attr_value)??(q==null?void 0:q.options)??b.options??b.attr_value)}})}),la=n=>{const c=L(n.custom_attr_value_id??n.custom_attr_value);if(!c.length)return"—";const l=n.options||[];return c.map(h=>{var b;return((b=l.find($=>$.id&&String($.id)===String(h)||String($.name)===String(h)))==null?void 0:b.name)||h}).join("、")},oa=e.computed(()=>B.value.bind_sku_list??[]),Re=e.computed(()=>V.value.sku_attr??[]),na=e.computed(()=>V.value.sku_list??[]),ra=(n,c)=>{var b;const l=(b=n.sku_attr)==null?void 0:b[c.attr_code];if(l==null||l==="")return"—";const h=(c.childs||[]).find($=>String($.attr_value_code)===String(l));return(h==null?void 0:h.attr_value_name)||String(l)},ia=n=>{const c=[];for(const l of n.supplier_quote||[])for(const h of l.quote_list||[])c.push({currency:l.quote_currency_code,is_tax:l.is_tax,tax_rate:l.tax_rate,...h});return c};return(n,c)=>(e.openBlock(),e.createBlock(e.unref(a.ElDialog),{"model-value":t.visible,title:"查看产品",width:"1200px",top:"4vh","close-on-click-modal":!1,"onUpdate:modelValue":c[1]||(c[1]=l=>r("update:visible",l))},{footer:e.withCtx(()=>[e.createVNode(e.unref(a.ElButton),{onClick:c[0]||(c[0]=l=>r("update:visible",!1))},{default:e.withCtx(()=>[...c[17]||(c[17]=[e.createTextVNode("关闭",-1)])]),_:1})]),default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",kt,[f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[c[13]||(c[13]=e.createElementVNode("div",{class:"pdd-title"},"基本信息",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:m.value?"中文款式":"中文品名"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(D.value)),1)]),_:1},8,["label"]),e.createVNode(e.unref(a.ElDescriptionsItem),{label:m.value?"英文款式":"英文品名"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(j.value)),1)]),_:1},8,["label"]),e.createVNode(e.unref(a.ElDescriptionsItem),{label:m.value?"SPU":"SKU"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(A.value)),1)]),_:1},8,["label"]),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"产品类型"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(R.value),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购公司"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Zt.value)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"状态"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Gt.value)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"品类"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.category_path_name||p.value.category_name)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"品牌"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Xt.value)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"单位"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Qt.value)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"产品标签"},{default:e.withCtx(()=>[Se.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Se.value,l=>(e.openBlock(),e.createBlock(e.unref(a.ElTag),{key:l.code,size:"small",class:"pdd-tag",style:e.normalizeStyle(l.color?{backgroundColor:l.color,borderColor:l.color,color:"#fff"}:{})},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.name),1)]),_:2},1032,["style"]))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("—")],64))]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"材质"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.material)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"型号"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.product_model)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"开发员"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.develop_leader_name||p.value.develop_user)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购员"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.purchase_leader_name||p.value.purchase_user)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"产品运营"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.sales_leader_name||p.value.sales_user)),1)]),_:1}),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(a.ElDescriptionsItem),{key:0,label:"关联SPU"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(p.value.spu_code)),1)]),_:1})),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(a.ElDescriptionsItem),{key:1,label:"产品属性",span:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Pt.value)),1)]),_:1})),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"附件",span:3},{default:e.withCtx(()=>[Te.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Te.value,(l,h)=>(e.openBlock(),e.createElementBlock("a",{key:h,href:l.url,target:"_blank",class:"pdd-file"},e.toDisplayString(l.name),9,_t))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("—")],64))]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"详细描述",span:3},{default:e.withCtx(()=>[vt.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"pdd-rich",innerHTML:p.value.product_desc},null,8,Ct)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("—")],64))]),_:1})]),_:1}),E.value==="20"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[c[2]||(c[2]=e.createElementVNode("div",{class:"pdd-title"},"产品组成",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"单位加工费"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.value.unit_process_cost!=null&&B.value.unit_process_cost!==""?`${B.value.unit_process_cost} ${B.value.unit_process_currency_code||""}`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"加工备注",span:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(B.value.unit_process_remark)),1)]),_:1})]),_:1}),e.createVNode(e.unref(a.ElTable),{data:oa.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{label:"图片",width:"70",align:"center"},{default:e.withCtx(({row:l})=>[l.image||l.product_image?(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:0,src:l.image||l.product_image,"preview-src-list":[l.image||l.product_image],"preview-teleported":"",fit:"cover",class:"pdd-thumb"},null,8,["src","preview-src-list"])):(e.openBlock(),e.createElementBlock("span",bt,"—"))]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"品名",prop:"product_name","min-width":"140","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"SKU",prop:"sku_code","min-width":"120","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"单位","min-width":"70"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(_(l.unit||l.unit_name)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"数量","min-width":"70"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(_(l.quantity??l.sku_quantity)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"品类",prop:"category_path_name","min-width":"120","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"型号","min-width":"90"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(_(l.model_no||l.product_model)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"材质",prop:"material","min-width":"90","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"单品尺寸","min-width":"140"},{default:e.withCtx(({row:l})=>{var h,b,$,q;return[e.createTextVNode(e.toDisplayString(O((h=l.spec_info)==null?void 0:h.length,(b=l.spec_info)==null?void 0:b.width,($=l.spec_info)==null?void 0:$.height,((q=l.spec_info)==null?void 0:q.height_unit)||"cm")),1)]}),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"净重","min-width":"80"},{default:e.withCtx(({row:l})=>{var h,b;return[e.createTextVNode(e.toDisplayString(z(((h=l.spec_info)==null?void 0:h.net_weight)??l.net_weight,(b=l.spec_info)==null?void 0:b.product_unit)),1)]}),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"毛重","min-width":"80"},{default:e.withCtx(({row:l})=>{var h,b;return[e.createTextVNode(e.toDisplayString(z(((h=l.spec_info)==null?void 0:h.gross_weight)??l.gross_weight,(b=l.spec_info)==null?void 0:b.product_unit)),1)]}),_:1})]),_:1},8,["data"])],64)):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c[3]||(c[3]=e.createElementVNode("div",{class:"pdd-title"},"款式属性",-1)),e.createVNode(e.unref(a.ElTable),{data:Re.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{label:"属性",prop:"attr_name",width:"160"}),e.createVNode(e.unref(a.ElTableColumn),{label:"属性值"},{default:e.withCtx(({row:l})=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.childs||[],h=>(e.openBlock(),e.createBlock(e.unref(a.ElTag),{key:h.attr_value_code,size:"small",class:"pdd-tag"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(h.attr_value_name),1)]),_:2},1024))),128))]),_:1})]),_:1},8,["data"]),c[4]||(c[4]=e.createElementVNode("div",{class:"pdd-subtitle"},"关联产品信息",-1)),e.createVNode(e.unref(a.ElTable),{data:na.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{label:"图片",width:"70",align:"center"},{default:e.withCtx(({row:l})=>[l.main_image?(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:0,src:l.main_image,"preview-src-list":[l.main_image],"preview-teleported":"",fit:"cover",class:"pdd-thumb"},null,8,["src","preview-src-list"])):(e.openBlock(),e.createElementBlock("span",wt,"—"))]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"SKU",prop:"sku_code","min-width":"130","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"中文品名",prop:"product_name","min-width":"150","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"英文品名","min-width":"150","show-overflow-tooltip":""},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(_(l.product_name_en||l.product_en_name)),1)]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Re.value,l=>(e.openBlock(),e.createBlock(e.unref(a.ElTableColumn),{key:l.attr_code,label:l.attr_name,"min-width":"100"},{default:e.withCtx(({row:h})=>[e.createTextVNode(e.toDisplayString(ra(h,l)),1)]),_:2},1032,["label"]))),128))]),_:1},8,["data"])],64)):e.createCommentVNode("",!0),c[14]||(c[14]=e.createElementVNode("div",{class:"pdd-title"},"规格信息",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"单品毛重"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z(T.value.gross_weight,T.value.gross_weight_unit)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"单品净重"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z(T.value.net_weight,T.value.net_weight_unit)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"包装重"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z(T.value.tare_weight,T.value.tare_weight_unit)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"单品尺寸"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(O(T.value.length,T.value.width,T.value.height)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"包装尺寸",span:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(O(T.value.tare_length,T.value.tare_width,T.value.tare_height)),1)]),_:1})]),_:1}),g.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[c[6]||(c[6]=e.createElementVNode("div",{class:"pdd-subtitle"},"装箱规格",-1)),e.createVNode(e.unref(a.ElTable),{data:g.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{type:"index",label:"序号",width:"60",align:"center"}),e.createVNode(e.unref(a.ElTableColumn),{label:"箱规名称",prop:"box_name","min-width":"130","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"单箱数量","min-width":"90"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(l.box_quantity!=null?`${l.box_quantity} pcs`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"单箱重量","min-width":"100"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(z(l.one_box_weight,l.one_box_unit)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"箱子重量","min-width":"100"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(z(l.box_weight,l.box_unit)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"外箱尺寸","min-width":"150"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(O(l.box_length,l.box_width,l.box_height)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"首选",width:"70",align:"center"},{default:e.withCtx(({row:l})=>[Number(l.is_preferred)===1?(e.openBlock(),e.createBlock(e.unref(a.ElTag),{key:0,size:"small",type:"success"},{default:e.withCtx(()=>[...c[5]||(c[5]=[e.createTextVNode("首选",-1)])]),_:1})):(e.openBlock(),e.createElementBlock("span",Vt,"—"))]),_:1})]),_:1},8,["data"])],64)):e.createCommentVNode("",!0),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[c[9]||(c[9]=e.createElementVNode("div",{class:"pdd-title"},"采购信息",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购成本"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(w.value.purchase_cost)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购交期"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.value.delivery_day!=null&&w.value.delivery_day!==""?`${w.value.delivery_day} 天`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购税率"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.value.tax_rate!=null&&w.value.tax_rate!==""?`${w.value.tax_rate} %`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"采购备注",span:3},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(w.value.purchase_remark)),1)]),_:1})]),_:1}),x.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[c[8]||(c[8]=e.createElementVNode("div",{class:"pdd-subtitle"},"报价信息",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(l,h)=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"pdd-supplier"},[e.createElementVNode("div",Et,[e.createElementVNode("span",Nt,e.toDisplayString(l.supplier_name||l.supplier_code||"—"),1),Number(l.is_preferred)===1?(e.openBlock(),e.createBlock(e.unref(a.ElTag),{key:0,size:"small",type:"success"},{default:e.withCtx(()=>[...c[7]||(c[7]=[e.createTextVNode("首选",-1)])]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("span",xt,"预计交期:"+e.toDisplayString(l.delivery_day!=null&&l.delivery_day!==""?`${l.delivery_day} 天`:"—"),1),e.createElementVNode("span",Bt,"报价备注:"+e.toDisplayString(_(l.purchase_remark??l.remark)),1)]),e.createVNode(e.unref(a.ElTable),{data:ia(l),border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{label:"币种",prop:"currency",width:"80"}),e.createVNode(e.unref(a.ElTableColumn),{label:"含税",width:"70",align:"center"},{default:e.withCtx(({row:b})=>[e.createTextVNode(e.toDisplayString(Number(b.is_tax)===1?"是":"否"),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"税率",width:"80"},{default:e.withCtx(({row:b})=>[e.createTextVNode(e.toDisplayString(b.tax_rate!=null&&b.tax_rate!==""?`${b.tax_rate} %`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"采购数量 ≥","min-width":"100"},{default:e.withCtx(({row:b})=>[e.createTextVNode(e.toDisplayString(_(b.purchase_quantity)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"单价","min-width":"100"},{default:e.withCtx(({row:b})=>[e.createTextVNode(e.toDisplayString(_(b.purchase_price)),1)]),_:1}),e.createVNode(e.unref(a.ElTableColumn),{label:"含税单价","min-width":"100"},{default:e.withCtx(({row:b})=>[e.createTextVNode(e.toDisplayString(_(b.purchase_price_tax)),1)]),_:1})]),_:1},8,["data"])]))),128))],64)):e.createCommentVNode("",!0)],64)),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[c[10]||(c[10]=e.createElementVNode("div",{class:"pdd-title"},"产品图片",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:1,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"主图"},{default:e.withCtx(()=>[te.value?(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:0,src:te.value,"preview-src-list":[te.value],"preview-teleported":"",fit:"cover",class:"pdd-img"},null,8,["src","preview-src-list"])):(e.openBlock(),e.createElementBlock("span",Dt,"—"))]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"尺寸图"},{default:e.withCtx(()=>[ae.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(ae.value,(l,h)=>(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:h,src:l,"preview-src-list":ae.value,"initial-index":h,"preview-teleported":"",fit:"cover",class:"pdd-img"},null,8,["src","preview-src-list","initial-index"]))),128)):(e.openBlock(),e.createElementBlock("span",St,"—"))]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"卖点图"},{default:e.withCtx(()=>[le.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(le.value,(l,h)=>(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:h,src:l,"preview-src-list":le.value,"initial-index":h,"preview-teleported":"",fit:"cover",class:"pdd-img"},null,8,["src","preview-src-list","initial-index"]))),128)):(e.openBlock(),e.createElementBlock("span",Tt,"—"))]),_:1})]),_:1})],64)),c[15]||(c[15]=e.createElementVNode("div",{class:"pdd-title"},"申报信息",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"中文申报名"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.declaration_name)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"英文申报名"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.declaration_name_en)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"中文材质"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.material)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"英文材质"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.material_en)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"中文用途"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.use)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"英文用途"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.use_en)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"中文功能"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.usage)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"英文功能"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.usage_en)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"申报价值"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.value.declaration_value!=null&&k.value.declaration_value!==""?`${k.value.declaration_value} ${k.value.declaration_currency_code||""}`:"—"),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"海关编码"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.hs_code)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"报关型号"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.declaration_model)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"原产地"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.country_of_origin)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"境内货源地"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(k.value.domestic_source_location)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"申报单位",span:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(Yt.value)),1)]),_:1})]),_:1}),c[16]||(c[16]=e.createElementVNode("div",{class:"pdd-title"},"质检项",-1)),e.createVNode(e.unref(a.ElDescriptions),{column:3,border:"",size:"small"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElDescriptionsItem),{label:"质检方式"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(ea.value),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"模板",span:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_(I.value.template_name||I.value.template_id||I.value.qc_temp_id)),1)]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"图片",span:3},{default:e.withCtx(()=>[oe.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(oe.value,(l,h)=>(e.openBlock(),e.createBlock(e.unref(a.ElImage),{key:h,src:l,"preview-src-list":oe.value,"initial-index":h,"preview-teleported":"",fit:"cover",class:"pdd-img"},null,8,["src","preview-src-list","initial-index"]))),128)):(e.openBlock(),e.createElementBlock("span",It,"—"))]),_:1}),e.createVNode(e.unref(a.ElDescriptionsItem),{label:"附件",span:3},{default:e.withCtx(()=>[Ie.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Ie.value,(l,h)=>(e.openBlock(),e.createElementBlock("a",{key:h,href:l.url,target:"_blank",class:"pdd-file"},e.toDisplayString(l.name),9,$t))),128)):(e.openBlock(),e.createElementBlock("span",jt,"—"))]),_:1})]),_:1}),$e.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[c[11]||(c[11]=e.createElementVNode("div",{class:"pdd-subtitle"},"自定义质检项",-1)),e.createVNode(e.unref(a.ElTable),{data:$e.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{type:"index",label:"序号",width:"60",align:"center"}),e.createVNode(e.unref(a.ElTableColumn),{label:"质检项",prop:"qc_item","min-width":"150","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"质检内容",prop:"qc_content","min-width":"250","show-overflow-tooltip":""})]),_:1},8,["data"])],64)):e.createCommentVNode("",!0),Me.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:6},[c[12]||(c[12]=e.createElementVNode("div",{class:"pdd-title"},"自定义属性",-1)),e.createVNode(e.unref(a.ElTable),{data:Me.value,border:"",size:"small",class:"pdd-table"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ElTableColumn),{label:"属性名称",prop:"attr_name",width:"200","show-overflow-tooltip":""}),e.createVNode(e.unref(a.ElTableColumn),{label:"属性值"},{default:e.withCtx(({row:l})=>[e.createTextVNode(e.toDisplayString(la(l)),1)]),_:1})]),_:1},8,["data"])],64)):e.createCommentVNode("",!0)],64)):y.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(a.ElEmpty),{key:1,description:"暂无数据"}))])),[[e.unref(a.vLoading),y.value]])]),_:1},8,["model-value"]))}}),ke=J(Rt,[["__scopeId","data-v-d9f33f89"]]),At={key:1,class:"j-sku-link-empty"},_e=J(e.defineComponent({name:"JSkuLink",__name:"JSkuLink",props:{code:{},emptyText:{default:"-"}},emits:["open"],setup(t,{emit:s}){const o=t,r=s,i=e.computed(()=>String(o.code??"").trim()||o.emptyText),d=e.computed(()=>{const y=String(o.code??"").trim();return y!==""&&y!=="-"}),u=()=>{d.value&&r("open",String(o.code).trim())};return(y,f)=>d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"j-sku-link",onClick:e.withModifiers(u,["stop"])},e.toDisplayString(i.value),1)):(e.openBlock(),e.createElementBlock("span",At,e.toDisplayString(t.emptyText),1))}}),[["__scopeId","data-v-9005eef1"]]);function zt(){const t=e.ref(!1),s=e.ref("");return{productDetailDialogVisible:t,productDetailDialogCode:s,openProductDetailDialog:r=>{const i=String(r??"").trim();!i||i==="-"||(s.value=i,t.value=!0)}}}const Ce=J(e.defineComponent({name:"JSearchInputDialog",__name:"JSearchInputDialog",props:e.mergeModels({options:{default:()=>[]},placeholder:{default:"请输入关键词"},width:{default:"320px"},selectWidth:{default:"100px"},separator:{default:","},dialogTitle:{default:""},dialogWidth:{default:"480px"},rows:{default:8},textareaPlaceholder:{default:"支持换行、逗号、空格分隔,确定后自动合并"},clearOnTypeChange:{type:Boolean,default:!1}},{type:{default:""},typeModifiers:{},keyword:{default:""},keywordModifiers:{}}),emits:e.mergeModels(["confirm","search"],["update:type","update:keyword"]),setup(t,{expose:s,emit:o}){var g,x;const r=t,i=e.useModel(t,"type"),d=e.useModel(t,"keyword"),u=o,y=e.ref(!1),f=e.ref(""),N=e.computed(()=>r.options.find(E=>E.value===i.value)),p=e.computed(()=>{var m;return r.dialogTitle?r.dialogTitle:`批量输入${((m=N.value)==null?void 0:m.label)||"关键词"}`}),T=E=>{if(!E)return"";const m=E.split(/[\n\r,,;;\s\t]+/).map(j=>j.trim()).filter(Boolean),R=[],D=new Set;for(const j of m)D.has(j)||(D.add(j),R.push(j));return R.join(r.separator)},M=E=>E?E.split(/[\n\r,,;;\s\t.]+/).map(m=>m.trim()).filter(Boolean).join(`
2
+ `):"",w=()=>{f.value=M(d.value),y.value=!0},k=()=>{d.value=T(f.value),y.value=!1,u("confirm",{type:i.value,keyword:d.value})},I=()=>{f.value=""};return!i.value&&((g=r.options)!=null&&g.length)&&(i.value=((x=r.options[0])==null?void 0:x.value)||""),e.watch(i,(E,m)=>{r.clearOnTypeChange&&E!==m&&(d.value="")}),s({reset:E=>{var m,R;i.value=E||((R=(m=r.options)==null?void 0:m[0])==null?void 0:R.value)||"",d.value=""},toParams:()=>!d.value||!i.value?{}:{[i.value]:d.value},openDialog:w}),(E,m)=>{const R=e.resolveComponent("el-option"),D=e.resolveComponent("el-select"),j=e.resolveComponent("el-button"),A=e.resolveComponent("el-input"),L=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",{class:"j-search-input-dialog",style:e.normalizeStyle({width:t.width})},[e.createVNode(A,{modelValue:d.value,"onUpdate:modelValue":m[1]||(m[1]=S=>d.value=S),placeholder:t.placeholder,clearable:"",class:"j-search-input-dialog__input",onKeyup:m[2]||(m[2]=e.withKeys(S=>u("search"),["enter"]))},{prepend:e.withCtx(()=>[e.createVNode(D,{modelValue:i.value,"onUpdate:modelValue":m[0]||(m[0]=S=>i.value=S),style:e.normalizeStyle({width:t.selectWidth}),disabled:!t.options.length},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,S=>(e.openBlock(),e.createBlock(R,{key:S.value,label:S.label,value:S.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","style","disabled"])]),append:e.withCtx(()=>[e.createVNode(j,{icon:e.unref(F.Memo),title:p.value,onClick:w},null,8,["icon","title"])]),_:1},8,["modelValue","placeholder"]),e.createVNode(L,{modelValue:y.value,"onUpdate:modelValue":m[5]||(m[5]=S=>y.value=S),title:p.value,width:t.dialogWidth,"append-to-body":"","destroy-on-close":"","close-on-click-modal":!1,onClosed:I},{footer:e.withCtx(()=>[e.createVNode(j,{onClick:m[4]||(m[4]=S=>y.value=!1)},{default:e.withCtx(()=>[...m[6]||(m[6]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(j,{type:"primary",onClick:k},{default:e.withCtx(()=>[...m[7]||(m[7]=[e.createTextVNode("确定",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(A,{modelValue:f.value,"onUpdate:modelValue":m[3]||(m[3]=S=>f.value=S),type:"textarea",rows:t.rows,placeholder:t.textareaPlaceholder,resize:"vertical"},null,8,["modelValue","rows","placeholder"])]),_:1},8,["modelValue","title","width"])],4)}}}),[["__scopeId","data-v-29890413"]]);function P(t,s){return Array.isArray(t)?t.map(o=>P(o,s)):t!==null&&typeof t=="object"&&!(t instanceof Date)?s(t):t}function be(t,s=[]){return Object.fromEntries(Object.entries(t).map(([o,r])=>{const i=P(r,u=>be(u,s));return s.includes(o)?[o,i]:[o.replace(/([A-Z])/g,"_$1").toLowerCase(),i]}))}function we(t,s=[]){return Object.fromEntries(Object.entries(t).map(([o,r])=>{const i=P(r,u=>we(u,s));return s.includes(o)?[o,i]:[o.replace(/_([a-z])/g,(u,y)=>y.toUpperCase()),i]}))}function Ft(t,s){const o={};for(const r of s)r in t&&(o[r]=t[r]);return o}function Lt(t,s){const o={...t};for(const r of s)delete o[r];return o}function v(t){if(t===null||typeof t!="object")return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t.source,t.flags);if(Array.isArray(t))return t.map(o=>v(o));const s={};for(const o of Object.keys(t))s[o]=v(t[o]);return s}function Ve(t,s=!1){const o={};for(const[r,i]of Object.entries(t))if(!(i==null||i===""))if(s&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof Date)){const d=Ve(i,!0);Object.keys(d).length>0&&(o[r]=d)}else o[r]=i;return o}function Ee(t,s="",o="."){const r={};for(const[i,d]of Object.entries(t)){const u=s?`${s}${o}${i}`:i;d!==null&&typeof d=="object"&&!Array.isArray(d)&&!(d instanceof Date)?Object.assign(r,Ee(d,u,o)):r[u]=d}return r}function qt(t,s="."){const o={};for(const[r,i]of Object.entries(t)){const d=r.split(s);let u=o;for(let y=0;y<d.length-1;y++){const f=d[y];f in u||(u[f]={}),u=u[f]}u[d[d.length-1]]=i}return o}function Jt(t){return Object.entries(t).map(([s,o])=>({id:s,label:o,prop:s}))}function Ne(t,s){if(!t)return null;let o=t.replace(/^@\//,"");o.startsWith("views/")||(o=`views/${o}`),o.endsWith(".vue")||(o=`${o}.vue`);const r=`/src/${o}`;return s[r]??s["/src/views/common/NotFound.vue"]??null}function xe(t){const s=new Map,o=[];return t.forEach(r=>s.set(r.name,{...r,children:[]})),t.forEach(r=>{const i=s.get(r.name);if(!r.parent_name)o.push(i);else{const d=s.get(r.parent_name);d?(d.children??(d.children=[]),d.children.push(i)):o.push(i)}}),o}function ee(t,s,o){return t.filter(r=>!o||!r.project||r.project===o).map(r=>{var u;const i={path:r.path,name:r.name,meta:{requiresAuth:r.requiresAuth===1,title:r.title,permissions:r.permissions?r.permissions.split(",").map(y=>y.trim()).filter(Boolean):[],params:r.params?r.params.split("&").map(y=>y.trim()).filter(Boolean):[]}},d=Ne(r.component,s);return d&&(i.component=d),r.redirect&&(i.redirect=r.redirect),(u=r.children)!=null&&u.length&&(i.children=ee(r.children,s,o)),i})}function Ot(t,s,o,r){const i=new Map;t.forEach(u=>i.set(u.name,u));const d=u=>{let y=u.parent_name;const f=new Set;for(;y;){if(y===o)return!0;if(f.has(y))return!1;f.add(y);const N=i.get(y);if(!N)return!1;y=N.parent_name}return!1};return t.filter(u=>u.name!==o&&u.is_show===1&&u.component&&s.includes(u.code)&&d(u)&&(!r||!u.project||u.project===r)).sort((u,y)=>u.sorts-y.sorts)[0]}X.configure({showSpinner:!1});const Be=(...t)=>{},De=(...t)=>{},Ut=(...t)=>{console.error("[Router]",...t)};function Ht(t,s){const{getRouteStore:o,getPermissionStore:r,getUserStore:i,isAuthenticated:d,viewModules:u,homeComponent:y,notFoundComponent:f,projectName:N,layoutRouteName:p="Layout",publicPaths:T=["/login","/register"],loginRouteName:M="login",forbiddenRouteName:w="Forbidden",homeRouteName:k="Home",homeRoutePath:I="home",homeTitle:B="首页",noPermissionMessage:V="暂无权限"}=s;let g=!1;function x(m){const D=xe(m).find(A=>A.name===p),j=D!=null&&D.children?ee(D.children,u,N):[];j.forEach(A=>{A.name&&t.hasRoute(A.name)||(t.addRoute(p,A),Be(`Add route: ${String(A.name)} -> ${A.path}`))}),t.hasRoute(k)||t.addRoute(p,{path:I,name:k,component:y,meta:{title:B}}),t.hasRoute("NotFound")||t.addRoute({path:"/:pathMatch(.*)*",name:"NotFound",component:f}),Be(`Dynamic routes added: ${j.length}`)}function E(m,R){if(m===k){R();return}t.hasRoute(k)?R({name:k,replace:!0}):R()}return t.beforeEach(async(m,R,D)=>{if(X.start(),d()&&!g)try{const S=o(),_=r();if(await S.initRoutes(),await _.loadUserPermissions(),x(S.backendRoutes),g=!0,m.path==="/"||m.path===""){E(m.name,D);return}if(m.name===p){E(m.name,D);return}const z=S.backendRoutes.find(O=>O.name===m.name);if(z&&!_.routePermissions.includes(z.code)){De("No route permission:",m.path),D({name:w,replace:!0});return}D({path:m.path,query:m.query,hash:m.hash,replace:!0});return}catch(S){Ut("Failed to load route permissions:",S),g=!1,await i().logout(),D({name:M,replace:!0});return}if(T.includes(m.path)){d()?D({path:"/",replace:!0}):D();return}if(!d()){D({name:M,replace:!0});return}const j=r(),A=o();if(m.name===k){D();return}if(j.routePermissions.length===0){m.path!=="/"?(a.ElMessage.warning(V),D({path:"/",replace:!0})):E(m.name,D);return}if(m.path==="/"){E(m.name,D);return}if(m.name===p){E(m.name,D);return}const L=A.backendRoutes.find(S=>S.name===m.name);if(L&&!j.routePermissions.includes(L.code)){De("No route permission:",m.path),D({name:w,replace:!0});return}D()}),t.afterEach(()=>X.done()),{resetRouterState:()=>{g=!1}}}const Wt=[ne,re,W,ie,ce,G,Q,se,ke,_e,Ce],Kt={install:t=>{Wt.forEach(s=>{t.component(s.name??s.__name??"",s)})}};C.JAdminLayout=se,C.JButton=ne,C.JIconRender=W,C.JImportExcel=ce,C.JProductDetailDialog=ke,C.JSearchHeader=ie,C.JSearchInputDialog=Ce,C.JSideMenuItem=Q,C.JSidebar=G,C.JSkuLink=_e,C.JUploadImg=re,C.J_PRODUCT_REQUEST_KEY=Y,C.buildRouteTree=xe,C.createRouterGuard=Ht,C.deepClone=v,C.default=Kt,C.filterEmpty=Ve,C.findFirstAllowedRoute=Ot,C.flatten=Ee,C.getComponentImport=Ne,C.omit=Lt,C.pick=Ft,C.provideProductRequest=yt,C.resolveProductRequest=pe,C.toCamelCase=we,C.toSnakeCase=be,C.toTableColumns=Jt,C.transformBackendRoutes=ee,C.unflatten=qt,C.useInjectedProductRequest=de,C.useProductDetailDialog=zt,Object.defineProperties(C,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
3
  //# sourceMappingURL=index.umd.cjs.map