comp-hub 0.1.19 → 0.1.21
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.
- package/bin/cli.cjs +77 -0
- package/dist/index.js +1 -1
- package/dist/website/dist/assets/{atom-one-dark-k3s8nS4Q.js → atom-one-dark-B2H-r86L.js} +1 -1
- package/dist/website/dist/assets/{index-Gk0AmvhA.js → index-4kzrJosw.js} +1 -1
- package/dist/website/dist/assets/{index-BnJyLrXy.js → index-BfqhDZ1z.js} +1 -1
- package/dist/website/dist/assets/{index-eLdJqQqm.js → index-BrnVzb3E.js} +1 -1
- package/dist/website/dist/assets/{index-DCQCk6Lt.js → index-CPx4gS-Z.js} +1 -1
- package/dist/website/dist/assets/{index-BlL2Tdlj.js → index-CUKBRQJT.js} +1 -1
- package/dist/website/dist/assets/{index-B08_yIdo.js → index-Cfid4FBF.js} +1 -1
- package/dist/website/dist/assets/{index-D3Uaxo2f.js → index-D8NW2qZW.js} +1 -1
- package/dist/website/dist/assets/{index-Bg1sSD0h.js → index-DDURCXIZ.js} +1 -1
- package/dist/website/dist/assets/{index-BzYZrqYN.js → index-DNxTJC5Q.js} +1 -1
- package/dist/website/dist/assets/{index-BwfgYRqy.js → index-DS9olnsn.js} +1 -1
- package/dist/website/dist/assets/{index-B6bJejXz.js → index-DhTRF1Cu.js} +1 -1
- package/dist/website/dist/assets/{index-BPH0o3O-.js → index-DuJUC7Nj.js} +1 -1
- package/dist/website/dist/assets/{index-C5AGoQL2.js → index-J0Dg-l9h.js} +1 -1
- package/dist/website/dist/assets/{index-DxJFvPw9.css → index-XTZOLvZN.css} +1 -1
- package/dist/website/dist/assets/{index-BulG_yUH.js → index-YOgOWiS9.js} +1 -1
- package/dist/website/dist/assets/{index-BCju3w1f.js → index-cHbH7T5D.js} +12 -12
- package/dist/website/dist/assets/{index-BmdNO1MZ.js → index-nDiFvJw_.js} +1 -1
- package/dist/website/dist/assets/index-qsWrHMBc.js +1 -0
- package/dist/website/dist/assets/{index-CwOHeTUF.js → index-szn1X1M8.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-Cdma1D5V.js → index.vue_vue_type_script_setup_true_lang-BMtIwDs3.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-B6qjGW9b.js → index.vue_vue_type_script_setup_true_lang-C2jCrlom.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-DZI9cQ6F.js → index.vue_vue_type_script_setup_true_lang-Cj1ig2OS.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-CpnHQFlL.js → index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-mv_g4rJC.js → index.vue_vue_type_script_setup_true_lang-Deq2IwpY.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-BcrKTT6J.js → index.vue_vue_type_script_setup_true_lang-RtjuxFdx.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-KBVOs3Yx.js → index.vue_vue_type_script_setup_true_lang-mjupg3Z_.js} +3 -3
- package/dist/website/dist/assets/{index.vue_vue_type_script_setup_true_lang-DZ8ULnqr.js → index.vue_vue_type_script_setup_true_lang-s3TpsvnW.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_style_index_0_lang-D5mLFRCT.js → index.vue_vue_type_style_index_0_lang-BVuL5ED4.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_style_index_0_lang-C9MO6ZTW.js → index.vue_vue_type_style_index_0_lang-CVT5yNeL.js} +1 -1
- package/dist/website/dist/assets/{index.vue_vue_type_style_index_0_lang-DZzA4x8F.js → index.vue_vue_type_style_index_0_lang-Dhu78hQ_.js} +1 -1
- package/dist/website/dist/assets/{md5-gsIWVbtJ.js → md5-CejJMKeR.js} +1 -1
- package/dist/website/dist/assets/{moment-Q0xdD-i8.js → moment-DYVhN5eu.js} +1 -1
- package/dist/website/dist/assets/useCompEditStore-C3L6eIoz.js +1 -0
- package/dist/website/dist/assets/{useCompEditStore-Z_9v-nSk.css → useCompEditStore-Dca_66Tn.css} +1 -1
- package/dist/website/dist/assets/{useTeamHeaders-3AldZ0JH.js → useTeamHeaders-22mJVwWy.js} +1 -1
- package/dist/website/dist/assets/{v1Keyword-CTrvQOnq.js → v1Keyword-JxL-DecN.js} +1 -1
- package/dist/website/dist/assets/{v1Module-BPYVWmkw.js → v1Module-Clll6gmK.js} +1 -1
- package/dist/website/dist/index.html +2 -2
- package/package.json +6 -4
- package/bin/cli.js +0 -15
- package/dist/website/dist/assets/index-gOrnUHC4.js +0 -1
- package/dist/website/dist/assets/useCompEditStore-DxIY6W80.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Q as qe,d as P,ac as Ze,r as x,B as E,w as o,aI as Re,Z as re,u as L,o as y,i as pe,m as B,y as ce,aO as Xe,c as O,b as a,O as W,P as ae,a as w,ai as ge,f as R,G as ne,aY as _e,D as me,p as F,t as oe,aW as ue,a4 as X,a5 as ee,M as Ee,aZ as et,a_ as tt,ae as at,a2 as xe,k as I,a0 as Ue,a1 as Be,a$ as ot,E as K,b0 as lt,g as de,h as Se,aN as Oe,aE as Ve,b1 as Pe,a8 as le,b2 as nt,ao as ke,b3 as st,b4 as it,n as ct,V as Te,b5 as ze,b6 as rt,b7 as dt,ax as ut,b8 as pt,b9 as mt,ba as ft,bb as _t,x as $e,aB as vt,X as be,bc as ht,bd as gt,be as bt,bf as yt,bg as Ct,bh as wt,v as Ge,W as Ae,bi as De,a7 as He,bj as kt,a9 as Me,bk as xt,bl as St,F as Tt,N as $t,bm as At,bn as Dt,bo as Mt,j as Lt,bp as It,bq as Rt,br as Nt,bs as Et,$ as Ut,Y as Bt}from"./index-BCju3w1f.js";import{g as he,v as Ot,f as Vt,c as Fe}from"./useCompEditStore-DxIY6W80.js";import{a as ye,c as fe,U as Pt,T as zt,b as Le,_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-B6qjGW9b.js";import{_ as Gt}from"./index.vue_vue_type_script_setup_true_lang-DZ8ULnqr.js";import{B as se}from"./index-BzYZrqYN.js";import{c as Ce,u as Ht}from"./index-DCQCk6Lt.js";import{k as ve}from"./v1Keyword-CTrvQOnq.js";import{u as q}from"./useTeamHeaders-3AldZ0JH.js";import{a as Ft}from"./index-BnJyLrXy.js";import{_ as Kt,e as Yt}from"./index.vue_vue_type_script_setup_true_lang-Cdma1D5V.js";import{B as jt,h as Ne}from"./moment-Q0xdD-i8.js";import{_ as Ye}from"./index.vue_vue_type_style_index_0_lang-DZzA4x8F.js";import{c as je}from"./index.vue_vue_type_style_index_0_lang-C9MO6ZTW.js";import{b as Qe}from"./index.vue_vue_type_script_setup_true_lang-CpnHQFlL.js";import"./v1Module-BPYVWmkw.js";const J=(N="")=>{if(!N)throw new Error("createTeamHomeStore scopeId is required");return qe(`teamHome_${N}`,{state:()=>({teamDetail:{},loading:!1,selectedRows:[],selectedRowsToLeafNodeMap:{},dataSourceCopy:[],canSaveCopy:!1}),getters:{teamName:e=>e.teamDetail.name,creator:e=>({nickname:e.teamDetail?.creatorId?.nickname||e.teamDetail?.creatorId?.account||"",avatar:e.teamDetail?.creatorId?.avatar||""}),creatorNickname:e=>e.teamDetail?.creatorNickname||"",memberCount:e=>e.teamDetail?.memberCount||0,compCount:e=>e.teamDetail?.compCount||0,totalDownloadCount:e=>e.teamDetail?.totalDownloadCount||0,isCreator:e=>e.teamDetail.isCreator,isMember:e=>e.teamDetail.isMember,isOutMember:e=>!e.teamDetail.isCreator&&!e.teamDetail.isMember,description:e=>e.teamDetail.description||"",isPublic:e=>e.teamDetail.isPublic,isApplyNeedAudit:e=>e.teamDetail.isApplyNeedAudit,isAllowCompAuthorDelete:e=>e.teamDetail.isAllowCompAuthorDelete,isShowRepeatComp:e=>e.teamDetail.isShowRepeatComp,code:e=>e.teamDetail.code||"",menuGroup:e=>e.teamDetail.menuGroup||[]},actions:{setCanSaveCopy(e){this.$patch(c=>{c.canSaveCopy=e})},setLoading(e){this.$patch(c=>{c.loading=e})},setTeamDetail(e){this.$patch(c=>{c.teamDetail=e})},setSelectedRows(e){this.$patch(c=>{c.selectedRows=e})},setDataSourceCopy(e){this.$patch(c=>{c.dataSourceCopy=e})},setSelectedRowsToLeafNodeMap(e){this.$patch(c=>{c.selectedRowsToLeafNodeMap=e})},addSelectedRowsToLeafNodeMap(e){this.$patch(c=>{c.selectedRowsToLeafNodeMap={...c.selectedRowsToLeafNodeMap,...e}})},delSelectedRowsToLeafNodeMap(e){this.$patch(c=>{const h={...c.selectedRowsToLeafNodeMap};e.forEach(l=>{delete h[l]}),c.selectedRowsToLeafNodeMap=h})},getSelectedGroupLeafNodes(e=""){return e?he(this.menuGroup,e).filter(h=>h.children?.length===0).map(h=>h.id):[]}}})},Qt=P({__name:"index",setup(N){const e=Ze();return(c,h)=>{const l=x("el-skeleton");return y(),E(l,re({rows:3,animated:""},L(e)),{default:o(()=>[Re(c.$slots,"default")]),template:o(()=>[Re(c.$slots,"template")]),_:3},16)}}}),Wt={class:"size-full overflow-hidden"},Jt=P({__name:"CompList",props:{data:{type:Array,default:()=>[]},selectedRows:{type:Array,default:()=>[]}},emits:["selection-change","add-one-comp"],setup(N,{emit:e}){const c=N,h=e,l=pe("baseTable"),u=B(()=>({data:c.data,column:[{prop:"name",label:"组件名称",align:"center"},{prop:"version",label:"组件版本",align:"center"},{prop:"isAdd",label:"已添加",align:"center",formatter:n=>n.isAdd?"是":"否"},{prop:"desc",label:"组件描述",align:"center",showOverflowTooltip:{popperClass:"table-text-tooltip"}},{slot:"operation",prop:"operation",label:"操作",align:"center"}],isPagination:!1,autoLoading:!1}));function d(n){const _=n.filter(C=>!C.isAdd).map(C=>C._id);h("selection-change",_)}function p(){const n=l.value?.getTableRef();n?.clearSelection(),c.selectedRows.forEach(_=>{const C=c.data.find(b=>b._id===_);C?.isAdd||n?.toggleRowSelection(C,void 0,!0)})}const g=(n,_)=>{h("add-one-comp",n._id,_)};return ce(()=>JSON.stringify(c.selectedRows),()=>{p()}),Xe(()=>{p()}),(n,_)=>{const C=x("el-button"),b=x("el-table-column");return y(),O("div",Wt,[a(se,{ref:"baseTable",tableConfig:u.value,border:"",stripe:"",onSelect:d,onSelectAll:d},{operation:o(({col:f})=>[a(b,W(ae(f)),{default:o(({row:t})=>[w("div",null,[a(ge,null,{default:o(({instance:m,loading:k})=>[a(C,{type:"primary",disabled:t.isAdd,loading:k,onClick:$=>g(t,m)},{default:o(()=>[..._[0]||(_[0]=[R("添加",-1)])]),_:1},8,["disabled","loading","onClick"])]),_:2},1024)])]),_:1},16)]),_:1},8,["tableConfig"])])}}}),qt={class:"size-full overflow-hidden"},Zt={class:"flex-1"},Xt={class:"w-full flex items-center justify-end"},ea=P({__name:"CompGrid",props:{data:{type:Array,default:()=>[]},selectedRows:{type:Array,default:()=>[]}},emits:["selection-change","add-one-comp"],setup(N,{emit:e}){const c=N,h=e,l=ne(),u=Ce(`${l.path}_${_e.TEAM_ADD_MY_COMP}`)();X(ee.COMP_LIST_STORE,u);const d=new Map;X(ee.CALLBACKS,d);const p=async()=>{u.setLoading(!0);const _=ue(c.data);await u.renderList(_),u.setLoading(!1)},g=(_,C)=>{let b=[...c.selectedRows];_?b.includes(C)||b.push(C):b=b.filter(f=>f!==C),h("selection-change",b)},n=(_,C)=>{h("add-one-comp",_._id,C)};return ce(()=>c.data,()=>p(),{immediate:!0,deep:!0}),me(()=>{u.$reset()}),(_,C)=>{const b=x("el-checkbox"),f=x("el-button");return y(),O("div",qt,[a(ye,null,{compItemToolBar:o(({attrs:t})=>[w("div",Zt,[w("span",null,oe(t.version),1)])]),compItemFooter:o(({attrs:t})=>[w("div",Xt,[F("",!0),a(ge,null,{default:o(({instance:m,loading:k})=>[a(f,{type:"primary",loading:k,disabled:t.isAdd,onClick:$=>n(t,m)},{default:o(()=>[...C[0]||(C[0]=[R("添加",-1)])]),_:1},8,["loading","disabled","onClick"])]),_:2},1024)])]),_:1})])}}}),ta=P({__name:"ViewToggle",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const e=Ee(N,"modelValue"),c=B(()=>e.value==="grid"?et:tt),h=B(()=>e.value==="grid"?"transform: rotate(90deg)":"");function l(){e.value=e.value==="grid"?"list":"grid"}return(u,d)=>{const p=x("el-icon");return y(),O("div",{class:"flex items-center rounded-sm border border-[#ccc] cursor-pointer",onClick:l},[a(p,{style:at([h.value,{"font-size":"30px",color:"#ccc"}])},{default:o(()=>[(y(),E(xe(c.value)))]),_:1},8,["style"])])}}}),aa={class:"size-full flex flex-col overflow-auto overflow-x-hidden"},oa={class:"flex gap-2 pb-2"},la=P({__name:"index",setup(N,{expose:e}){const{headers:c,teamId:h}=q(),l=J(h)(),u=I([]),d=I(!1),p=I(""),g=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"status",label:"状态",type:"el-select",value:"NotAdded",attributes:{style:{width:"120px"},clearable:!0,options:[{label:"已添加",value:"Added"},{label:"未添加",value:"NotAdded"}]}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},fetchData:t}),n=B(()=>u.value.length===g.value.data?.filter(r=>!r.isAdd).length),_=B(()=>n.value?"取消全选":"全选"),C=B(()=>g.value.data?.some(r=>!r.isAdd)||!1),b=B(()=>u.value.length>0);function f(r,S){if(r.length<=1)return S([]);ve({keyword:r,type:"compMy"},{headers:c}).then(M=>{const{keywords:G=[]}=M.data||{};S(G)})}async function t(r){const S=await lt({...r},{headers:c}),{rows:M,total:G}=S.data||{};g.value.data=M||[],g.value.pagination.total=G||0,u.value=[]}function m(){d.value=!0}function k(){d.value=!1}function $(){p.value=p.value??"list"}function U(){n.value?u.value=[]:u.value=g.value.data?.filter(r=>!r.isAdd).map(r=>r._id)||[]}function A(r){r.start(),ot({compIds:u.value},{headers:c}).then(()=>{g.value.data?.forEach(M=>{u.value.includes(M._id)&&(M.isAdd=!0)});const S=l.teamDetail.compCount+u.value.length;l.setTeamDetail({...l.teamDetail,compCount:S}),u.value=[],K.success("添加成功")}).finally(()=>{r.end()})}async function D(r){A(r)}function s(r){u.value=r}async function i(r,S){u.value=[r],A(S)}return e({open:m,close:k}),(r,S)=>{const M=x("el-button"),G=x("el-drawer");return y(),E(G,{modelValue:d.value,"onUpdate:modelValue":S[1]||(S[1]=z=>d.value=z),title:"添加组件",resizable:"","with-header":!1,onOpened:$,size:"50%","append-to-body":""},{default:o(()=>[w("div",aa,[a(se,{tableConfig:g.value},{tableBefore:o(()=>[w("div",oa,[F("",!0),F("",!0),a(ta,{modelValue:p.value,"onUpdate:modelValue":S[0]||(S[0]=z=>p.value=z),class:"ml-auto"},null,8,["modelValue"])])]),table:o(()=>[a(Ue,null,{default:o(()=>[(y(),E(Be,null,[(y(),E(xe(p.value==="grid"?ea:Jt),{onAddOneComp:i,onSelectionChange:s,data:g.value.data,selectedRows:u.value},null,40,["data","selectedRows"]))],1024))]),_:1})]),_:1},8,["tableConfig"])])]),_:1},8,["modelValue"])}}}),na={class:"size-full border border-[#ccc] rounded-sm p-2"},sa={class:"size-full overflow-hidden flex flex-col gap-1"},ia={class:"flex flex-col gap-2 overflow-hidden"},ca={class:"flex gap-[10px] items-center"},ra={class:"text-2xl font-bold text-gray-800"},da={class:"flex gap-[30px]"},ua={class:"border border-[#ccc] rounded-sm p-[2px] px-2 inline-block"},pa={class:"flex items-center gap-[30px] text-sm text-gray-600"},ma={class:"text-[#666] leading-5 text-sm flex-1 overflow-hidden"},fa={class:"flex"},_a=P({__name:"index",setup(N){const e=ne(),c=de(),{teamId:h}=e.params,l=J(h)(),u=pe("teamAddCompDrawer");function d(){u.value?.open()}function p(){c.push({name:"uploadTeam",params:{teamId:h}})}return(g,n)=>{const _=x("el-button");return y(),O("div",na,[a(Qt,{rows:4,loading:L(l).loading},{default:o(()=>[w("div",sa,[w("div",ia,[w("div",ca,[w("h2",ra,oe(L(l).teamName),1)]),w("div",da,[a(fe,{label:"创建者:",value:L(l).memberCount+" 人"},{value:o(()=>[w("div",ua,[a(Pt,re(L(l).creator,{teamUserNickname:L(l).creatorNickname}),null,16,["teamUserNickname"])])]),_:1},8,["value"]),a(fe,{label:"团队码:"},{value:o(()=>[a(Gt,{class:"text-sm text-[#666]",text:L(l).code},null,8,["text"])]),_:1})]),w("div",pa,[a(fe,{label:"成员:",value:L(l).memberCount+" 人"},null,8,["value"]),a(fe,{label:"组件:",value:L(l).compCount+" 个"},null,8,["value"]),a(fe,{label:"下载量:",value:L(l).totalDownloadCount},null,8,["value"])])]),w("p",ma,[a(zt,{text:L(l).description,class:"size-full"},null,8,["text"])]),w("div",fa,[a(_,{type:"info",plain:"",onClick:p},{default:o(()=>[...n[0]||(n[0]=[R("上传组件",-1)])]),_:1}),a(_,{type:"info",plain:"",onClick:d},{default:o(()=>[...n[1]||(n[1]=[R("去我的组件添加",-1)])]),_:1})])])]),_:1},8,["loading"]),a(la,{ref:"teamAddCompDrawer"},null,512)])}}}),va={class:"size-full"},ha={class:"flex items-center justify-center gap-2"},ga={key:1},ba={class:"flex items-center justify-center gap-2"},ya=P({__name:"index",setup(N){const e=Se(),{headers:c,teamId:h}=q(),l=J(h)(),u=pe("nicknameInput"),d=I({data:[],column:[{slot:"avatar",prop:"avatar",label:"头像",align:"center"},{prop:"type",label:"类型",align:"center",formatter(f){return{user:"普通用户",creator:"创建者"}[f.type]||"--"}},{prop:"nickname",label:"用户名",align:"center",formatter(f){return f.nickname||"--"}},{slot:"teamUserNickname",prop:"teamUserNickname",label:"团队内昵称",align:"center"},{slot:"operation",prop:"operation",label:"操作",align:"center"}],pagination:{total:0},search:{column:[{prop:"keyword",type:"el-input",value:"",autoQuery:!1,attributes:{placeholder:"账号/昵称"}}]},fixedHeight:!1,fetchData:n}),p=I({}),g=B(()=>e.userInfo?.account);async function n(f){const t=await it({...f},{headers:c}),{rows:m,total:k}=t.data||{};d.value.data=m||[],d.value.pagination.total=k||0}function _(f){le.confirm(`确定踢出用户【${f.nickname||f.account}】吗?`,"提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning",beforeClose:(t,m,k)=>{t==="confirm"?(m.confirmButtonLoading=!0,nt({userId:f._id},{headers:c}).then(()=>{K.success("踢出成功"),d.value.data=d.value.data?.filter($=>$._id!==f._id)||[],k()}).finally(()=>{m.confirmButtonLoading=!1})):k()}}).catch(()=>{})}async function C(f){p.value[f._id]=!0,await ke(),u.value?.focus()}async function b(f){if(!f.teamUserNickname){delete p.value[f._id];return}st({userId:f._id,teamUserNickname:f.teamUserNickname},{headers:c}).then(()=>{K.success("更新成功"),delete p.value[f._id]})}return(f,t)=>{const m=x("el-input"),k=x("Edit"),$=x("el-icon"),U=x("el-table-column"),A=x("el-tag"),D=x("el-button");return y(),O("div",va,[a(se,{tableConfig:d.value,border:""},Oe({teamUserNickname:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[w("div",ha,[p.value[i._id]?(y(),E(m,{key:0,ref:"nicknameInput",modelValue:i.teamUserNickname,"onUpdate:modelValue":r=>i.teamUserNickname=r,placeholder:"请输入你在团队的昵称",onKeyup:Pe(r=>b(i),["enter"]),onBlur:r=>b(i)},null,8,["modelValue","onUpdate:modelValue","onKeyup","onBlur"])):(y(),O("span",ga,oe(i.teamUserNickname||"--"),1)),i.account===g.value?(y(),E($,{key:2,class:"cursor-pointer",onClick:r=>C(i)},{default:o(()=>[a(k)]),_:1},8,["onClick"])):F("",!0)])]),_:1},16)]),account:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[w("div",ba,[w("span",null,oe(i.account),1),i.account===g.value?(y(),E(A,{key:0,type:"info"},{default:o(()=>[...t[0]||(t[0]=[R("我",-1)])]),_:1})):F("",!0)])]),_:1},16)]),avatar:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[a(Ve,{src:i.avatar,size:40},null,8,["src"])]),_:1},16)]),_:2},[L(l).isCreator?{name:"operation",fn:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[i.type==="user"?(y(),E(D,{key:0,onClick:r=>_(i)},{default:o(()=>[...t[1]||(t[1]=[R("踢出",-1)])]),_:1},8,["onClick"])):F("",!0)]),_:1},16)]),key:"0"}:void 0]),1032,["tableConfig"])])}}}),Ca={class:"flex gap-2"},wa=P({__name:"index",props:{modelValue:{type:String,default:""},modelModifiers:{}},emits:["update:modelValue"],setup(N){const e=Ee(N,"modelValue"),c=Se(),h=I({resetBtn:!1,submitBtn:!1}),l=I({}),u=I({}),d=B(()=>[{type:"input",field:"email",title:"邮箱",value:c?.userInfo?.email,props:{disabled:!0},validate:[{required:!0,message:"请输入绑定的邮箱",trigger:"blur"},{validator:(g,n,_)=>{Ft(n)?_():_(new Error("请输入正确的邮箱"))},trigger:"blur"}]},{type:"slotAuthCode",field:"authCode",title:"验证码",value:"",validate:[{required:!0,message:"请输入验证码",trigger:"blur"}]}]);function p({end:g,startCountdown:n}){l.value.validateField("email").then(async()=>{await Yt({email:u.value.email}).then(()=>{K.success("验证码已发送"),n()})}).finally(()=>{g()})}return ct(()=>{e.value=u.value.authCode?.toString()??""}),(g,n)=>{const _=x("el-input"),C=x("form-create");return y(),E(C,{rule:d.value,modelValue:u.value,"onUpdate:modelValue":n[0]||(n[0]=b=>u.value=b),api:l.value,"onUpdate:api":n[1]||(n[1]=b=>l.value=b),option:h.value},{"type-slotAuthCode":o(b=>[w("div",Ca,[a(_,{"model-value":String(b.model.value),onInput:f=>b.model.callback(f),class:"flex-1",placeholder:"请输入验证码"},null,8,["model-value","onInput"]),a(Kt,{text:"获取验证码","countdown-text":"{n}秒后重新获取",duration:60,onSend:p})])]),_:1},8,["rule","modelValue","api","option"])}}}),ka=P({__name:"SetCreator",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Te(),d=ze(),p=J(h)(),g=I({}),n=I({resetBtn:!1,submitBtn:!1,form:{labelWidth:"auto"}}),_=I({}),C=B(()=>[{type:"input",field:"name",title:"团队名称",value:p.teamName,props:{placeholder:"请输入团队名称"},on:{blur:()=>{g.value.validateField("name").then(()=>{b({name:_.value.name})})}},validate:[{required:!0,message:"请输入团队名称",trigger:"blur"},{min:2,max:10,message:"长度在 2 到 10 个字符",trigger:"blur"}]},{type:"switch",field:"isApplyNeedAudit",title:"申请审核",value:p.isApplyNeedAudit,on:{change:t=>{b({isApplyNeedAudit:t})}}},{type:"switch",field:"isShowRepeatComp",title:"展示重复组件",value:p.isShowRepeatComp,on:{change:t=>{b({isShowRepeatComp:t})}}},{type:"switch",field:"isAllowCompAuthorDelete",title:"作者删除组件权限",value:p.isAllowCompAuthorDelete,on:{change:t=>{b({isAllowCompAuthorDelete:t})}}},{type:"input",field:"description",title:"团队介绍",value:p.description,props:{placeholder:"请输入团队介绍",type:"textarea",autosize:{minRows:2,maxRows:4},maxlength:200,showWordLimit:!0},on:{blur:()=>{g.value.validateField("description").then(()=>{b({description:_.value.description})})}},validate:[{min:3,max:200,message:"长度在 3 到 200 个字符",trigger:"blur"}]},{type:"slotAction",field:"action",title:"操作"}]);function b(t){rt({...t},{headers:c}).then(()=>{K.success("更新成功");const m=d.createdTeams.find(k=>k._id===h);m&&t.name&&d.updateCreatedTeamItemById(h??"",{...m,...t}),p.setTeamDetail({...p.teamDetail,...t})})}const f=async()=>{if(await le.confirm("确定解散团队吗,解散后所有成员和组件将被移除,并且无法恢复?","删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;const m=I("");le({title:"请输入验证码",message:()=>ut(wa,{modelValue:m.value,"onUpdate:modelValue":k=>m.value=k}),beforeClose:(k,$,U)=>{if(k==="confirm"){if(!m.value){K.error("请输入验证码");return}$.confirmButtonLoading=!0,dt({authCode:m.value},{headers:c}).then(()=>{K.success("解散团队成功"),d.removeCreatedTeam(h??""),u.delViewAndJumpToPrev(e.path,!0,l),U()}).finally(()=>{$.confirmButtonLoading=!1})}else U()}}).catch(()=>{})};return(t,m)=>{const k=x("el-button"),$=x("form-create");return y(),E($,{rule:C.value,modelValue:_.value,"onUpdate:modelValue":m[0]||(m[0]=U=>_.value=U),option:n.value,api:g.value,"onUpdate:api":m[1]||(m[1]=U=>g.value=U)},{"type-slotAction":o(()=>[a(k,{type:"danger",onClick:f},{default:o(()=>[...m[2]||(m[2]=[R("解散团队",-1)])]),_:1})]),_:1},8,["rule","modelValue","option","api"])}}}),xa=P({__name:"SetMember",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Te(),d=ze(),p=B(()=>({showReset:!1,showSubmit:!1,rows:[{type:"slot",label:"操作",prop:"action"}]})),g=async()=>{await le.confirm("确定退出团队吗?","退出确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})==="confirm"&&pt({headers:c}).then(()=>{K.success("退出成功"),d.removeJoinedTeam(h??""),u.delViewAndJumpToPrev(e.path,!0,l)})};return(n,_)=>{const C=x("el-button");return y(),E(jt,{config:p.value},{action:o(()=>[a(C,{onClick:g},{default:o(()=>[..._[0]||(_[0]=[R("退出团队",-1)])]),_:1})]),_:1},8,["config"])}}}),Sa={class:"size-full"},Ta=P({__name:"index",setup(N){const e=ne(),{teamId:c}=e.params,h=J(c)();return(l,u)=>{const d=x("el-card");return y(),O("div",Sa,[a(d,{class:"w-[50%] mx-auto"},{header:o(()=>[...u[0]||(u[0]=[w("span",null,"团队设置",-1)])]),default:o(()=>[w("div",null,[L(h).isCreator?(y(),E(ka,{key:0})):F("",!0),L(h).isMember?(y(),E(xa,{key:1})):F("",!0)])]),_:1})])}}}),$a={class:"size-full"},Aa={key:0},Da={key:1},Ma=P({__name:"index",setup(N){const{headers:e,teamId:c}=q(),h=J(c)(),l=I({data:[],column:[{slot:"avatar",prop:"userId.avatar",label:"头像",align:"center"},{prop:"userId.account",label:"账号",align:"center"},{prop:"userId.nickname",label:"昵称",align:"center",formatter(p){return p.userId.nickname||"--"}},{slot:"operation",prop:"operation",label:"操作",align:"center"}],pagination:{total:0},search:{column:[{prop:"keyword",type:"el-input",value:"",autoQuery:!1,attributes:{placeholder:"账号/昵称"}}]},fixedHeight:!1,fetchData:u});async function u(p){const g=await ft({...p},{headers:e}),{rows:n,total:_}=g.data||{};l.value.data=n||[],l.value.pagination.total=_||0}function d(p,g,n){n.start(),mt({applyId:p._id,isAgree:g},{headers:e}).then(()=>{l.value.data=l.value.data?.map(_=>(_._id===p._id&&(_.status=g?"approved":"rejected"),_)),K.success("处理成功")}).finally(()=>{n.end()})}return(p,g)=>{const n=x("el-table-column"),_=x("el-button"),C=x("el-tag");return y(),O("div",$a,[a(se,{tableConfig:l.value,border:""},Oe({avatar:o(({col:b})=>[a(n,W(ae(b)),{default:o(({row:f})=>[a(Ve,{src:f.userId.avatar,size:40},null,8,["src"])]),_:1},16)]),_:2},[L(h).isCreator?{name:"operation",fn:o(({col:b})=>[a(n,W(ae(b)),{default:o(({row:f})=>[f.status==="pending"?(y(),O("div",Aa,[a(ge,null,{default:o(({instance:t,loading:m})=>[a(_,{type:"danger",loading:m,onClick:k=>d(f,!1,t)},{default:o(()=>[...g[0]||(g[0]=[R("拒绝",-1)])]),_:1},8,["loading","onClick"]),a(_,{type:"primary",loading:m,onClick:k=>d(f,!0,t)},{default:o(()=>[...g[1]||(g[1]=[R("同意",-1)])]),_:1},8,["loading","onClick"])]),_:2},1024)])):(y(),O("div",Da,[a(C,{type:"info"},{default:o(()=>[R(oe(f.status==="approved"?"已同意":"已拒绝"),1)]),_:2},1024)]))]),_:1},16)]),key:"0"}:void 0]),1032,["tableConfig"])])}}}),La={class:"size-full flex flex-col overflow-auto"},Ia={class:"flex gap-2"},Ra={class:"flex-1 flex flex-col gap-2 overflow-auto"},Na={class:"flex gap-1"},Ea={class:"flex items-center gap-1"},Ua={class:"text-[#f40] text-[12px]"},Ba={class:"flex-1 overflow-auto"},Oa={class:"custom-tree-node"},Va={key:1},Pa={key:0},za={class:"flex gap-1 items-center"},Ga=P({__name:"TreeMenu",setup(N){const e={children:"children",label:"label",isLeaf:v=>!v.children||v.children.length===0},{headers:c,teamId:h}=q(),l=J(h)(),u=I(""),d=I([]),p=pe("tree"),g=I({}),n=I([]),_=I("[]"),C=I({}),b=I(!1),f=B(()=>{const v=JSON.stringify(n.value),T=_.value;return v!==T||!_t(l.selectedRowsToLeafNodeMap,C.value)}),t=B(()=>l.selectedRows.length>0),m=()=>({id:Ot(),label:"默认分组",children:[],isEdit:!1}),k=(v,T)=>{v&&(g.value[T]=v)},$=v=>{d.value.includes(v)||(d.value=[...d.value,v])},U=v=>{const j=he(n.value,v.id).map(V=>V.id).concat(v.id);d.value=d.value.filter(V=>!j.includes(V)),b.value=!1},A=v=>{$(v.id)},D=v=>{v.isEdit=!1},s=v=>{v.isEdit=!1},i=(v,T)=>v?T.label.includes(v):!0,r=()=>{const v={menuGroup:n.value,compIdInLeafNodeMap:l.selectedRowsToLeafNodeMap};wt(v,{headers:c}).then(()=>{K.success("保存成功"),C.value=ue(l.selectedRowsToLeafNodeMap),l.setTeamDetail({...l.teamDetail,menuGroup:ue(n.value)})})},S=async v=>{v.isEdit=!0,await ke(),g.value[v.id]?.focus(),g.value[v.id]?.select()},M=async v=>{const T=m();v.children||(v.children=[]),v.children.push(T),n.value=[...n.value],await ke();const j={};for(const V in l.selectedRowsToLeafNodeMap)l.selectedRowsToLeafNodeMap[V]===v.id&&(j[V]=T.id);l.addSelectedRowsToLeafNodeMap(j),$(T.id)},G=async(v,T)=>{const we=he(n.value,T.id).filter(te=>te.children?.length===0).map(te=>te.id).concat(T.id),Z=[];for(const te in l.selectedRowsToLeafNodeMap)we.includes(l.selectedRowsToLeafNodeMap[te]??"")&&Z.push(te);if(Z?.length){if(await le.confirm("确认删除该分组吗?删除后该分组下的所有组件将被移除分组","提示",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;l.delSelectedRowsToLeafNodeMap(Z)}const H=v.parent,Q=H?.data.children||H?.data,Je=Q.findIndex(te=>te.id===T.id);Q.splice(Je,1),n.value=[...n.value]},z=()=>{const v=m();n.value.push(v)},Y=()=>{if(!n.value.length)return;const v=n.value.map(T=>he(n.value,T.id).map(V=>V.id)).reduce((T,j)=>T.concat(j),[]);v.length&&(d.value=v,b.value=!0)},ie=v=>{f.value&&v.preventDefault()},We=v=>{const T=l.selectedRows.reduce((j,V)=>({...j,[V]:v.id}),{});l.addSelectedRowsToLeafNodeMap(T),l.setSelectedRows([]),K.success("添加成功")},Ie=v=>Object.values(l.selectedRowsToLeafNodeMap).filter(T=>T===v.id).length;return ce(u,v=>{p.value.filter(v)}),ce(()=>l.menuGroup,v=>{n.value=ue(v),_.value=JSON.stringify(v)},{immediate:!0}),ce(()=>JSON.stringify(n.value),()=>{l.setDataSourceCopy(ue(n.value))},{immediate:!0}),ce(()=>l.selectedRowsToLeafNodeMap,v=>{C.value=ue(v)},{immediate:!0,once:!0}),ce(()=>f.value,v=>{l.setCanSaveCopy(v)},{immediate:!0,deep:!0}),$e(()=>{window.addEventListener("beforeunload",ie)}),me(()=>{window.removeEventListener("beforeunload",ie)}),(v,T)=>{const j=x("el-input"),V=x("el-button"),we=x("el-tree");return y(),O("div",La,[T[5]||(T[5]=w("h2",{class:"text-lg font-bold mb-2"},"分组配置",-1)),w("div",Ia,[a(j,{modelValue:u.value,"onUpdate:modelValue":T[0]||(T[0]=Z=>u.value=Z),class:"mb-2",placeholder:"请输入分组名称"},null,8,["modelValue"])]),w("div",Ra,[w("div",Na,[a(V,{size:"small",onClick:Y,disabled:b.value},{default:o(()=>[...T[1]||(T[1]=[R("展开全部",-1)])]),_:1},8,["disabled"]),a(V,{type:"primary",size:"small",onClick:z,icon:L(vt)},{default:o(()=>[...T[2]||(T[2]=[R("创建分组",-1)])]),_:1},8,["icon"]),w("div",Ea,[a(V,{type:"primary",disabled:!f.value,size:"small",onClick:r,icon:L(ht)},{default:o(()=>[...T[3]||(T[3]=[R(" 保存 ",-1)])]),_:1},8,["disabled","icon"]),be(w("span",Ua,"未保存",512),[[gt,f.value]])])]),w("div",Ba,[a(we,{ref:"tree",data:n.value,"default-expanded-keys":d.value,"expand-on-click-node":!1,"filter-node-method":i,props:e,"node-key":"id",onNodeExpand:A,onNodeCollapse:U},{default:o(({node:Z,data:H})=>[w("div",Oa,[H.isEdit?(y(),E(j,{key:0,modelValue:H.label,"onUpdate:modelValue":Q=>H.label=Q,autofocus:"",size:"small",onKeydown:Pe(Q=>D(H),["enter"]),onBlur:Q=>s(H),onChange:Q=>D(H),ref:Q=>k(Q,H.id)},null,8,["modelValue","onUpdate:modelValue","onKeydown","onBlur","onChange"])):(y(),O("span",Va,[R(oe(Z.label)+" ",1),Z.isLeaf&&Ie(H)>0?(y(),O("span",Pa," ("+oe(Ie(H))+") ",1)):F("",!0)])),w("div",za,[a(V,{type:"info",link:"",onClick:Q=>S(H),icon:L(bt)},null,8,["onClick","icon"]),a(V,{type:"primary",link:"",onClick:Q=>M(H),icon:L(yt)},null,8,["onClick","icon"]),a(V,{type:"danger",link:"",onClick:Q=>G(Z,H),icon:L(Ct)},null,8,["onClick","icon"]),a(V,{disabled:!Z.isLeaf||!t.value,type:"success",link:"",onClick:Q=>We(H)},{default:o(()=>[...T[4]||(T[4]=[R(" 添加组件 ",-1)])]),_:1},8,["disabled","onClick"])])])]),_:1},8,["data","default-expanded-keys"])])])])}}}),Ha=Ge(Ga,[["__scopeId","data-v-a4f31447"]]),Fa={class:"flex w-full mb-2"},Ka={class:"flex-1"},Ya={class:"flex w-full h-[30px] items-center gap-2"},ja=P({__name:"CompGroupList",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Ce(`${e.path}_${_e.TEAM_COMP_GROUP_LIST}`)();X(ee.COMP_LIST_STORE,u);const d=new Map;X(ee.CALLBACKS,d);const p=J(h)(),g=B(()=>p.menuGroup),n=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"isGroup",label:"是否分组",type:"el-select",value:"",attributes:{style:{width:"120px"},clearable:!0,options:[{label:"已分组",value:"Yes"},{label:"未分组",value:"No"}]}},{prop:"group",type:"el-cascader",label:"分组",value:"",attributes:{options:g,clearable:!0,props:{value:"id",checkStrictly:!0}}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},autoLoading:!1,fetchData:t}),_=B(()=>n.value.data?.length>0&&p.selectedRows.length===n.value.data?.length),C=B(()=>_.value?"取消全选":"全选"),b=B(()=>n.value.data?.length?n.value.data.some(s=>!D(s._id)):!1);function f(s,i){if(s.length<=1)return i([]);ve({keyword:s,type:"compTeam"},{headers:c}).then(r=>{const{keywords:S=[]}=r.data||{};i(S)})}async function t(s){u.setLoading(!0);const{group:i=[]}=s||{};delete s.group;const r=i?.[i.length-1];if(r){let z=p.getSelectedGroupLeafNodes(r);z=z.length===0?[r]:z,s.leafNodeIds=z}const S=await De({...s,scene:"library"},{headers:c}),{rows:M,total:G}=S.data||{};await u.renderList(M||[]),n.value.data=M||[],n.value.pagination.total=G||0}function m(s){l.push({path:`/previewTeam/${h}/${s._id}`})}function k(s,i){let r=[...p.selectedRows];s?r.push(i):r=r.filter(S=>S!==i),p.setSelectedRows(r)}function $(){if(_.value){p.setSelectedRows([]);return}const s=n.value.data.filter(i=>!D(i._id)).map(i=>i._id);p.setSelectedRows(s)}function U(s){const i=p.selectedRowsToLeafNodeMap[s];return i?Vt(p.dataSourceCopy,i).reverse().map(S=>S.label).join(" / "):""}function A(s){p.delSelectedRowsToLeafNodeMap([s]),K.success("取消分组成功")}function D(s){return!!p.selectedRowsToLeafNodeMap[s]}return me(()=>{u.$reset()}),(s,i)=>{const r=x("el-button"),S=x("el-tag"),M=x("el-checkbox"),G=x("el-link"),z=Ae("loading");return be((y(),O("div",null,[a(se,{tableConfig:n.value},{tableBefore:o(()=>[w("div",Fa,[a(r,{type:"primary",onClick:$,disabled:!b.value},{default:o(()=>[R(oe(C.value),1)]),_:1},8,["disabled"])])]),table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:Y})=>[w("div",Ka,[Y._id?(y(),E(Le,W(re({key:0},{id:Y._id,version:Y.version})),null,16)):F("",!0)])]),compItemFooter:o(({attrs:Y})=>[w("div",Ya,[D(Y._id)?(y(),E(S,{key:0,type:"info",closable:"","disable-transitions":!0,round:"",onClose:ie=>A(Y._id)},{default:o(()=>[R(oe(U(Y._id)),1)]),_:2},1032,["onClose"])):(y(),E(M,{key:1,label:"选择","model-value":L(p).selectedRows.includes(Y._id),onChange:ie=>k(ie,Y._id)},null,8,["model-value","onChange"])),a(G,{class:"inline-block ml-auto",type:"primary",onClick:ie=>m(Y)},{default:o(()=>[...i[0]||(i[0]=[R(" 预览 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["tableConfig"])])),[[z,L(u).loading]])}}}),Qa={class:"flex gap-3"},Wa={class:"w-[400px] border border-[#ccc] rounded-sm max-h-[60vh] overflow-hidden sticky top-10 p-2"},Ja={class:"flex-1 border border-[#ccc] rounded-sm p-2"},qa=P({__name:"index",setup(N){return(e,c)=>(y(),O("div",Qa,[w("div",Wa,[a(Ha)]),w("div",Ja,[a(ja)])]))}}),Za={class:"size-full overflow-hidden"},Xa={class:"flex-1"},eo={class:"flex-1 flex justify-end items-center gap-2"},to=P({__name:"index",setup(N){const e=ne(),c=de(),h=Se(),{headers:l,teamId:u}=q(),d=Ce(`${e.path}_${_e.TEAM_COMP_LIST}`)();X(ee.COMP_LIST_STORE,d);const p=new Map;X(ee.CALLBACKS,p);const g=Fe(e.path)();X(ee.COMP_EDIT_STORE,g);const n=J(u)(),_=pe("compUpdateDialog"),C=B(()=>n.menuGroup),b=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"group",type:"el-cascader",label:"分组",value:"",attributes:{options:C,clearable:!0,props:{value:"id",checkStrictly:!0}}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},autoLoading:!1,fetchData:t});function f(s,i){if(s.length<=1)return i([]);ve({keyword:s,type:"compTeam"},{headers:l}).then(r=>{const{keywords:S=[]}=r.data||{};i(S)})}async function t(s){d.setLoading(!0);const{group:i=[]}=s||{};delete s.group;const r=i?.[i.length-1];if(r){let z=n.getSelectedGroupLeafNodes(r);z=z.length===0?[r]:z,s.leafNodeIds=z}const S=await De({...s,scene:"library"},{headers:l}),{rows:M,total:G}=S.data||{};await d.renderList(M||[]),b.value.pagination.total=G||0}function m(s){c.push({path:`/previewTeam/${u}/${s._id}`})}function k(s){const{_id:i,totalDownloadCount:r=0}=s;d.updateCompListItemById(i,{totalDownloadCount:r+1})}function $(s){const i=s?.canUpdateUsers?.includes(h.userId),r=s?.authorId?._id===h.userId;return i||r}async function U(s){const i=He.service({fullscreen:!0});try{const r=s._id,S=await kt({compId:r},{headers:l}),{result:M}=S.data||{};if(M==="cannot_update"){le.confirm(Me.CONFIRM.NO_UPDATE_PERMISSION(),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).finally(()=>{});return}_.value?.open(s._id)}finally{i.close()}}function A(s){return je(s._id)().isLocalExist?"primary":"info"}function D(s){Qe({compId:s}).then(i=>{d.updateCompListItemById(s,i.data)})}return me(()=>{d.$reset()}),(s,i)=>{const r=x("el-link"),S=Ae("loading");return be((y(),O("div",Za,[a(se,{tableConfig:b.value},{table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:M})=>[w("div",Xa,[M._id?(y(),E(Le,W(re({key:0},{id:M._id,version:M.version})),null,16)):F("",!0)])]),compItemFooterOperate:o(({attrs:M})=>[w("div",eo,[$(M)?(y(),E(r,{key:0,type:A(M),onClick:G=>U(M)},{default:o(()=>[...i[0]||(i[0]=[R(" 更新 ",-1)])]),_:1},8,["type","onClick"])):F("",!0),a(Ke,re({id:M._id,name:M.name,version:M.version},{onDownloadSuccess:G=>k(M)}),null,16,["onDownloadSuccess"]),a(r,{class:"inline-block",type:"primary",onClick:G=>m(M)},{default:o(()=>[...i[1]||(i[1]=[R(" 预览 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["tableConfig"]),a(Ye,{ref:"compUpdateDialog",onUpdateSuccess:D},null,512)])),[[S,L(d).loading]])}}}),ao={class:"size-full"},oo={class:"flex-1"},lo={class:"flex-1 flex justify-end items-center gap-2"},no=P({__name:"index",setup(N){const e=de(),c=ne(),{headers:h,teamId:l}=q(),u=Ce(`${c.path}_${_e.TEAM_MY_COMP_LIST}`)();X(ee.COMP_LIST_STORE,u);const d=Fe(`${c.path}_${_e.TEAM_MY_COMP_UPDATE}`)();X(ee.COMP_EDIT_STORE,d);const p=new Map;X(ee.CALLBACKS,p);const g=J(l)(),n=pe("compUpdateDialog"),_=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:C,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}}]},pagination:{total:0},fixedHeight:!1,autoLoading:!1,fetchData:b});function C(A,D){if(A.length<=1)return D([]);ve({keyword:A,type:"compTeamMy"},{headers:h}).then(s=>{const{keywords:i=[]}=s.data||{};D(i)})}async function b(A){u.setLoading(!0);const D=await St({...A},{headers:h}),{rows:s,total:i}=D.data||{};await u.renderList(s||[]),_.value.pagination.total=i||0}async function f(A){const D=He.service({fullscreen:!0});try{if(await le.confirm(Me.CONFIRM.TEAM_DEL_COMP(A.name),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;await xt({compIds:[A._id]},{headers:h}).then(()=>{K.success("删除成功"),u.delCompListById(A._id),g.setTeamDetail({...g.teamDetail,compCount:g.teamDetail.compCount-1})})}finally{D.close()}}function t(A){e.push({path:`/previewTeam/${l}/${A._id}`})}async function m(A){n.value?.open(A._id)}function k(A){const{_id:D,totalDownloadCount:s=0}=A;u.updateCompListItemById(D,{totalDownloadCount:s+1})}function $(A){return je(A._id)().isLocalExist?"primary":"info"}function U(A){Qe({compId:A}).then(D=>{u.updateCompListItemById(A,D.data)})}return me(()=>{u.$reset()}),(A,D)=>{const s=x("el-link"),i=Ae("loading");return be((y(),O("div",ao,[a(se,{tableConfig:_.value,border:""},{table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:r})=>[w("div",oo,[r._id?(y(),E(Le,W(re({key:0},{id:r._id,version:r.version})),null,16)):F("",!0)])]),compItemFooterOperate:o(({attrs:r})=>[w("div",lo,[a(s,{type:$(r),onClick:S=>m(r)},{default:o(()=>[...D[0]||(D[0]=[R(" 更新 ",-1)])]),_:1},8,["type","onClick"]),a(Ke,re({id:r._id,name:r.name,version:r.version},{onDownloadSuccess:S=>k(r)}),null,16,["onDownloadSuccess"]),a(s,{class:"inline-block",type:"primary",onClick:S=>t(r)},{default:o(()=>[...D[1]||(D[1]=[R(" 预览 ",-1)])]),_:1},8,["onClick"]),L(g).isAllowCompAuthorDelete?(y(),E(s,{key:0,type:"danger",onClick:S=>f(r)},{default:o(()=>[...D[2]||(D[2]=[R("删除",-1)])]),_:1},8,["onClick"])):F("",!0)])]),_:1})]),_:1},8,["tableConfig"]),a(Ye,{ref:"compUpdateDialog",onUpdateSuccess:U},null,512)])),[[i,L(u).loading]])}}}),so={class:"size-full"},io=P({__name:"index",setup(N){const e=de(),{headers:c,teamId:h}=q(),l=J(h)(),u=I([]),d=I({data:[],column:[{prop:"name",label:"组件名称",align:"center"},{prop:"authorId.nickname",label:"作者",align:"center",formatter:t=>t.teamUserNickname||t.authorId?.nickname||"--"},{prop:"version",label:"组件版本",align:"center"},{prop:"desc",label:"组件描述",align:"center",showOverflowTooltip:{popperClass:"table-text-tooltip"}},{prop:"createdAt",label:"创建时间",align:"center",formatter:t=>t.createdAt?Ne(t.createdAt).format("YYYY-MM-DD"):"--"},{prop:"updatedAt",label:"更新时间",align:"center",formatter:t=>t.updatedAt?Ne(t.updatedAt).format("YYYY-MM-DD"):"--"},{slot:"canUpdateUsers",prop:"canUpdateUsers",label:"更新授权",align:"center"},{slot:"operation",prop:"operation",label:"操作",align:"center"}],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:g,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}}]},pagination:{total:0},fixedHeight:!1,fetchData:n}),p=B(()=>u.value.map(t=>({value:t._id,label:t.teamUserNickname||t.nickname||t.account})));function g(t,m){if(t.length<=1)return m([]);ve({keyword:t,type:"compTeam"},{headers:c}).then(k=>{const{keywords:$=[]}=k.data||{};m($)})}async function n(t){const m=await De({...t,scene:"management"},{headers:c}),{rows:k,total:$}=m.data||{};d.value.data=k||[],d.value.pagination.total=$||0}async function _(t,m){m.start();try{if(await le.confirm(Me.CONFIRM.TEAM_DEL_COMP(t.name),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;await At({compIds:[t._id]},{headers:c}).then(()=>{K.success("删除成功"),d.value.data=d.value.data.filter($=>$._id!==t._id),l.setTeamDetail({...l.teamDetail,compCount:l.teamDetail.compCount-1})})}finally{m.end()}}function C(t){e.push({path:`/previewTeam/${h}/${t._id}`})}function b(){Dt({headers:c}).then(t=>{u.value=t.data?.rows||[]})}function f(t){const m={compId:t._id,canUpdateUserIds:t.canUpdateUsers||[]};Mt(m,{headers:c})}return $e(()=>{b()}),(t,m)=>{const k=x("el-option"),$=x("el-select"),U=x("el-table-column"),A=x("el-button");return y(),O("div",so,[a(se,{tableConfig:d.value,border:""},{canUpdateUsers:o(({col:D})=>[a(U,W(ae(D)),{default:o(({row:s})=>[a($,{modelValue:s.canUpdateUsers,"onUpdate:modelValue":i=>s.canUpdateUsers=i,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"选择可更新用户",onChange:i=>f(s)},{header:o(()=>[...m[0]||(m[0]=[w("span",{class:"text-[#ccc]"},"作者自带授权",-1)])]),default:o(()=>[(y(!0),O(Tt,null,$t(p.value,i=>(y(),E(k,{key:i.value,label:i.label,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])]),_:1},16)]),operation:o(({col:D})=>[a(U,W(ae(D)),{default:o(({row:s})=>[a(A,{type:"primary",onClick:i=>C(s)},{default:o(()=>[...m[1]||(m[1]=[R("预览",-1)])]),_:1},8,["onClick"]),a(ge,null,{default:o(({instance:i,loading:r})=>[a(A,{type:"danger",loading:r,onClick:S=>_(s,i)},{default:o(()=>[...m[2]||(m[2]=[R("删除",-1)])]),_:1},8,["loading","onClick"])]),_:2},1024)]),_:1},16)]),_:1},8,["tableConfig"])])}}}),co={class:"mb-3 h-[200px]"},ro={class:"bg-color bg-[#ccc] sticky top-0 w-full bg-[#f5f7fa] z-[100]"},uo={class:"mt-2"},po=P({__name:"index",setup(N){const e=I(null);Ht(e);const c=[{label:"组件库",value:"TeamCompList",component:to,visible:()=>!0},{label:"分组配置",value:"TeamCompGroup",component:qa,visible:()=>d.isCreator},{label:"组件管理",value:"TeamCompManage",component:io,visible:()=>d.isCreator},{label:"我的组件",value:"TeamMyCompList",component:no,visible:()=>!0},{label:"团队成员",value:"TeamMemberList",component:ya,visible:()=>!0},{label:"加入申请",value:"TeamApplyList",component:Ma,visible:()=>d.isCreator},{label:"设置",value:"TeamSet",component:Ta,visible:()=>!0}],{headers:h,teamId:l}=q(),u=Te(),d=J(l)(),p=Lt(`${It}-${l}`,c[0]?.value),g=B(()=>Object.keys(d.teamDetail).length===0),n=B(()=>c.filter(f=>f.visible())),_=B(()=>n.value.find(t=>t.value===p.value)?.component||{render:()=>null}),C=async(f,t,m)=>{if(!d.canSaveCopy){m();return}const k=f.matched[f.matched.length-1],$=t.matched[t.matched.length-1];try{if(!k||!$){m();return}(!f.redirectedFrom||k.path===$.path)&&await le.confirm("分组配置数据未保存,确定要离开吗?","提示",{confirmButtonText:"离开",cancelButtonText:"取消",type:"warning"}),m()}catch{m(!1)}};function b(f,t){u.addPayLoad(`/team/${f}`,{name:t??""})}return Rt(C),Nt(C),$e(()=>{d.setLoading(!0),Et({headers:h}).then(f=>{const{compIdInLeafNodeMap:t}=f.data;d.setTeamDetail(f.data),d.setSelectedRowsToLeafNodeMap(t||{}),b(l??"",d.teamDetail?.name??"")}).catch(()=>{d.$reset()}).finally(()=>{d.setLoading(!1)})}),me(()=>{d.$reset()}),(f,t)=>{const m=x("el-segmented"),k=x("el-backtop");return y(),O("div",{class:"size-full overflow-x-hidden overflow-y-scroll page",ref_key:"compListEl",ref:e},[a(Bt,{isEmpty:g.value,loading:L(d).loading,emptyDescription:"暂无团队信息"},{default:o(()=>[w("div",co,[a(_a)]),w("div",ro,[a(m,{modelValue:L(p),"onUpdate:modelValue":t[0]||(t[0]=$=>Ut(p)?p.value=$:null),options:n.value,size:"default"},null,8,["modelValue","options"])]),w("div",uo,[a(Ue,null,{default:o(()=>[(y(),E(Be,null,[(y(),E(xe(_.value)))],1024))]),_:1})]),a(k,{right:100,bottom:100,target:".page"})]),_:1},8,["isEmpty","loading"])],512)}}}),Ao=Ge(po,[["__scopeId","data-v-fda3e20e"]]);export{Ao as default};
|
|
1
|
+
import{Q as qe,d as P,ac as Xe,r as x,B as E,w as o,aI as Re,Z as re,u as L,o as y,i as pe,m as B,y as ce,aO as Ze,c as O,b as a,O as W,P as ae,a as w,ai as ge,f as R,G as ne,aX as _e,D as me,p as F,t as oe,aV as ue,a4 as Z,a5 as ee,M as Ee,aY as et,aZ as tt,ae as at,a2 as xe,k as I,a0 as Ue,a1 as Be,a_ as ot,E as K,a$ as lt,g as de,h as Se,aN as Oe,aE as Ve,b0 as Pe,a8 as le,b1 as nt,ao as ke,b2 as st,b3 as it,n as ct,V as Te,b4 as ze,b5 as rt,b6 as dt,ax as ut,b7 as pt,b8 as mt,b9 as ft,ba as _t,x as $e,aB as vt,X as be,bb as ht,bc as gt,bd as bt,be as yt,bf as Ct,bg as wt,v as Ge,W as Ae,bh as De,a7 as He,bi as kt,a9 as Me,bj as xt,bk as St,F as Tt,N as $t,bl as At,bm as Dt,bn as Mt,j as Lt,bo as It,bp as Rt,bq as Nt,br as Et,$ as Ut,Y as Bt}from"./index-cHbH7T5D.js";import{g as he,v as Ot,f as Vt,c as Fe}from"./useCompEditStore-C3L6eIoz.js";import{a as ye,c as fe,U as Pt,T as zt,b as Le,_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-C2jCrlom.js";import{_ as Gt}from"./index.vue_vue_type_script_setup_true_lang-s3TpsvnW.js";import{B as se}from"./index-DNxTJC5Q.js";import{c as Ce,u as Ht}from"./index-CPx4gS-Z.js";import{k as ve}from"./v1Keyword-JxL-DecN.js";import{u as q}from"./useTeamHeaders-22mJVwWy.js";import{a as Ft}from"./index-BfqhDZ1z.js";import{_ as Kt,e as Yt}from"./index.vue_vue_type_script_setup_true_lang-BMtIwDs3.js";import{B as jt,h as Ne}from"./moment-DYVhN5eu.js";import{_ as Ye}from"./index.vue_vue_type_style_index_0_lang-Dhu78hQ_.js";import{c as je}from"./index.vue_vue_type_style_index_0_lang-CVT5yNeL.js";import{b as Qe}from"./index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js";import"./v1Module-Clll6gmK.js";const J=(N="")=>{if(!N)throw new Error("createTeamHomeStore scopeId is required");return qe(`teamHome_${N}`,{state:()=>({teamDetail:{},loading:!1,selectedRows:[],selectedRowsToLeafNodeMap:{},dataSourceCopy:[],canSaveCopy:!1}),getters:{teamName:e=>e.teamDetail.name,creator:e=>({nickname:e.teamDetail?.creatorId?.nickname||e.teamDetail?.creatorId?.account||"",avatar:e.teamDetail?.creatorId?.avatar||""}),creatorNickname:e=>e.teamDetail?.creatorNickname||"",memberCount:e=>e.teamDetail?.memberCount||0,compCount:e=>e.teamDetail?.compCount||0,totalDownloadCount:e=>e.teamDetail?.totalDownloadCount||0,isCreator:e=>e.teamDetail.isCreator,isMember:e=>e.teamDetail.isMember,isOutMember:e=>!e.teamDetail.isCreator&&!e.teamDetail.isMember,description:e=>e.teamDetail.description||"",isPublic:e=>e.teamDetail.isPublic,isApplyNeedAudit:e=>e.teamDetail.isApplyNeedAudit,isAllowCompAuthorDelete:e=>e.teamDetail.isAllowCompAuthorDelete,isShowRepeatComp:e=>e.teamDetail.isShowRepeatComp,code:e=>e.teamDetail.code||"",menuGroup:e=>e.teamDetail.menuGroup||[]},actions:{setCanSaveCopy(e){this.$patch(c=>{c.canSaveCopy=e})},setLoading(e){this.$patch(c=>{c.loading=e})},setTeamDetail(e){this.$patch(c=>{c.teamDetail=e})},setSelectedRows(e){this.$patch(c=>{c.selectedRows=e})},setDataSourceCopy(e){this.$patch(c=>{c.dataSourceCopy=e})},setSelectedRowsToLeafNodeMap(e){this.$patch(c=>{c.selectedRowsToLeafNodeMap=e})},addSelectedRowsToLeafNodeMap(e){this.$patch(c=>{c.selectedRowsToLeafNodeMap={...c.selectedRowsToLeafNodeMap,...e}})},delSelectedRowsToLeafNodeMap(e){this.$patch(c=>{const h={...c.selectedRowsToLeafNodeMap};e.forEach(l=>{delete h[l]}),c.selectedRowsToLeafNodeMap=h})},getSelectedGroupLeafNodes(e=""){return e?he(this.menuGroup,e).filter(h=>h.children?.length===0).map(h=>h.id):[]}}})},Qt=P({__name:"index",setup(N){const e=Xe();return(c,h)=>{const l=x("el-skeleton");return y(),E(l,re({rows:3,animated:""},L(e)),{default:o(()=>[Re(c.$slots,"default")]),template:o(()=>[Re(c.$slots,"template")]),_:3},16)}}}),Wt={class:"size-full overflow-hidden"},Jt=P({__name:"CompList",props:{data:{type:Array,default:()=>[]},selectedRows:{type:Array,default:()=>[]}},emits:["selection-change","add-one-comp"],setup(N,{emit:e}){const c=N,h=e,l=pe("baseTable"),u=B(()=>({data:c.data,column:[{prop:"name",label:"组件名称",align:"center"},{prop:"version",label:"组件版本",align:"center"},{prop:"isAdd",label:"已添加",align:"center",formatter:n=>n.isAdd?"是":"否"},{prop:"desc",label:"组件描述",align:"center",showOverflowTooltip:{popperClass:"table-text-tooltip"}},{slot:"operation",prop:"operation",label:"操作",align:"center"}],isPagination:!1,autoLoading:!1}));function d(n){const _=n.filter(C=>!C.isAdd).map(C=>C._id);h("selection-change",_)}function p(){const n=l.value?.getTableRef();n?.clearSelection(),c.selectedRows.forEach(_=>{const C=c.data.find(b=>b._id===_);C?.isAdd||n?.toggleRowSelection(C,void 0,!0)})}const g=(n,_)=>{h("add-one-comp",n._id,_)};return ce(()=>JSON.stringify(c.selectedRows),()=>{p()}),Ze(()=>{p()}),(n,_)=>{const C=x("el-button"),b=x("el-table-column");return y(),O("div",Wt,[a(se,{ref:"baseTable",tableConfig:u.value,border:"",stripe:"",onSelect:d,onSelectAll:d},{operation:o(({col:f})=>[a(b,W(ae(f)),{default:o(({row:t})=>[w("div",null,[a(ge,null,{default:o(({instance:m,loading:k})=>[a(C,{type:"primary",disabled:t.isAdd,loading:k,onClick:$=>g(t,m)},{default:o(()=>[..._[0]||(_[0]=[R("添加",-1)])]),_:1},8,["disabled","loading","onClick"])]),_:2},1024)])]),_:1},16)]),_:1},8,["tableConfig"])])}}}),qt={class:"size-full overflow-hidden"},Xt={class:"flex-1"},Zt={class:"w-full flex items-center justify-end"},ea=P({__name:"CompGrid",props:{data:{type:Array,default:()=>[]},selectedRows:{type:Array,default:()=>[]}},emits:["selection-change","add-one-comp"],setup(N,{emit:e}){const c=N,h=e,l=ne(),u=Ce(`${l.path}_${_e.TEAM_ADD_MY_COMP}`)();Z(ee.COMP_LIST_STORE,u);const d=new Map;Z(ee.CALLBACKS,d);const p=async()=>{u.setLoading(!0);const _=ue(c.data);await u.renderList(_),u.setLoading(!1)},g=(_,C)=>{let b=[...c.selectedRows];_?b.includes(C)||b.push(C):b=b.filter(f=>f!==C),h("selection-change",b)},n=(_,C)=>{h("add-one-comp",_._id,C)};return ce(()=>c.data,()=>p(),{immediate:!0,deep:!0}),me(()=>{u.$reset()}),(_,C)=>{const b=x("el-checkbox"),f=x("el-button");return y(),O("div",qt,[a(ye,null,{compItemToolBar:o(({attrs:t})=>[w("div",Xt,[w("span",null,oe(t.version),1)])]),compItemFooter:o(({attrs:t})=>[w("div",Zt,[F("",!0),a(ge,null,{default:o(({instance:m,loading:k})=>[a(f,{type:"primary",loading:k,disabled:t.isAdd,onClick:$=>n(t,m)},{default:o(()=>[...C[0]||(C[0]=[R("添加",-1)])]),_:1},8,["loading","disabled","onClick"])]),_:2},1024)])]),_:1})])}}}),ta=P({__name:"ViewToggle",props:{modelValue:{},modelModifiers:{}},emits:["update:modelValue"],setup(N){const e=Ee(N,"modelValue"),c=B(()=>e.value==="grid"?et:tt),h=B(()=>e.value==="grid"?"transform: rotate(90deg)":"");function l(){e.value=e.value==="grid"?"list":"grid"}return(u,d)=>{const p=x("el-icon");return y(),O("div",{class:"flex items-center rounded-sm border border-[#ccc] cursor-pointer",onClick:l},[a(p,{style:at([h.value,{"font-size":"30px",color:"#ccc"}])},{default:o(()=>[(y(),E(xe(c.value)))]),_:1},8,["style"])])}}}),aa={class:"size-full flex flex-col overflow-auto overflow-x-hidden"},oa={class:"flex gap-2 pb-2"},la=P({__name:"index",setup(N,{expose:e}){const{headers:c,teamId:h}=q(),l=J(h)(),u=I([]),d=I(!1),p=I(""),g=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"status",label:"状态",type:"el-select",value:"NotAdded",attributes:{style:{width:"120px"},clearable:!0,options:[{label:"已添加",value:"Added"},{label:"未添加",value:"NotAdded"}]}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},fetchData:t}),n=B(()=>u.value.length===g.value.data?.filter(r=>!r.isAdd).length),_=B(()=>n.value?"取消全选":"全选"),C=B(()=>g.value.data?.some(r=>!r.isAdd)||!1),b=B(()=>u.value.length>0);function f(r,S){if(r.length<=1)return S([]);ve({keyword:r,type:"compMy"},{headers:c}).then(M=>{const{keywords:G=[]}=M.data||{};S(G)})}async function t(r){const S=await lt({...r},{headers:c}),{rows:M,total:G}=S.data||{};g.value.data=M||[],g.value.pagination.total=G||0,u.value=[]}function m(){d.value=!0}function k(){d.value=!1}function $(){p.value=p.value??"list"}function U(){n.value?u.value=[]:u.value=g.value.data?.filter(r=>!r.isAdd).map(r=>r._id)||[]}function A(r){r.start(),ot({compIds:u.value},{headers:c}).then(()=>{g.value.data?.forEach(M=>{u.value.includes(M._id)&&(M.isAdd=!0)});const S=l.teamDetail.compCount+u.value.length;l.setTeamDetail({...l.teamDetail,compCount:S}),u.value=[],K.success("添加成功")}).finally(()=>{r.end()})}async function D(r){A(r)}function s(r){u.value=r}async function i(r,S){u.value=[r],A(S)}return e({open:m,close:k}),(r,S)=>{const M=x("el-button"),G=x("el-drawer");return y(),E(G,{modelValue:d.value,"onUpdate:modelValue":S[1]||(S[1]=z=>d.value=z),title:"添加组件",resizable:"","with-header":!1,onOpened:$,size:"50%","append-to-body":""},{default:o(()=>[w("div",aa,[a(se,{tableConfig:g.value},{tableBefore:o(()=>[w("div",oa,[F("",!0),F("",!0),a(ta,{modelValue:p.value,"onUpdate:modelValue":S[0]||(S[0]=z=>p.value=z),class:"ml-auto"},null,8,["modelValue"])])]),table:o(()=>[a(Ue,null,{default:o(()=>[(y(),E(Be,null,[(y(),E(xe(p.value==="grid"?ea:Jt),{onAddOneComp:i,onSelectionChange:s,data:g.value.data,selectedRows:u.value},null,40,["data","selectedRows"]))],1024))]),_:1})]),_:1},8,["tableConfig"])])]),_:1},8,["modelValue"])}}}),na={class:"size-full border border-[#ccc] rounded-sm p-2"},sa={class:"size-full overflow-hidden flex flex-col gap-1"},ia={class:"flex flex-col gap-2 overflow-hidden"},ca={class:"flex gap-[10px] items-center"},ra={class:"text-2xl font-bold text-gray-800"},da={class:"flex gap-[30px]"},ua={class:"border border-[#ccc] rounded-sm p-[2px] px-2 inline-block"},pa={class:"flex items-center gap-[30px] text-sm text-gray-600"},ma={class:"text-[#666] leading-5 text-sm flex-1 overflow-hidden"},fa={class:"flex"},_a=P({__name:"index",setup(N){const e=ne(),c=de(),{teamId:h}=e.params,l=J(h)(),u=pe("teamAddCompDrawer");function d(){u.value?.open()}function p(){c.push({name:"uploadTeam",params:{teamId:h}})}return(g,n)=>{const _=x("el-button");return y(),O("div",na,[a(Qt,{rows:4,loading:L(l).loading},{default:o(()=>[w("div",sa,[w("div",ia,[w("div",ca,[w("h2",ra,oe(L(l).teamName),1)]),w("div",da,[a(fe,{label:"创建者:",value:L(l).memberCount+" 人"},{value:o(()=>[w("div",ua,[a(Pt,re(L(l).creator,{teamUserNickname:L(l).creatorNickname}),null,16,["teamUserNickname"])])]),_:1},8,["value"]),a(fe,{label:"团队码:"},{value:o(()=>[a(Gt,{class:"text-sm text-[#666]",text:L(l).code},null,8,["text"])]),_:1})]),w("div",pa,[a(fe,{label:"成员:",value:L(l).memberCount+" 人"},null,8,["value"]),a(fe,{label:"组件:",value:L(l).compCount+" 个"},null,8,["value"]),a(fe,{label:"下载量:",value:L(l).totalDownloadCount},null,8,["value"])])]),w("p",ma,[a(zt,{text:L(l).description,class:"size-full"},null,8,["text"])]),w("div",fa,[a(_,{type:"info",plain:"",onClick:p},{default:o(()=>[...n[0]||(n[0]=[R("上传组件",-1)])]),_:1}),a(_,{type:"info",plain:"",onClick:d},{default:o(()=>[...n[1]||(n[1]=[R("去我的组件添加",-1)])]),_:1})])])]),_:1},8,["loading"]),a(la,{ref:"teamAddCompDrawer"},null,512)])}}}),va={class:"size-full"},ha={class:"flex items-center justify-center gap-2"},ga={key:1},ba={class:"flex items-center justify-center gap-2"},ya=P({__name:"index",setup(N){const e=Se(),{headers:c,teamId:h}=q(),l=J(h)(),u=pe("nicknameInput"),d=I({data:[],column:[{slot:"avatar",prop:"avatar",label:"头像",align:"center"},{prop:"type",label:"类型",align:"center",formatter(f){return{user:"普通用户",creator:"创建者"}[f.type]||"--"}},{prop:"nickname",label:"用户名",align:"center",formatter(f){return f.nickname||"--"}},{slot:"teamUserNickname",prop:"teamUserNickname",label:"团队内昵称",align:"center"},{slot:"operation",prop:"operation",label:"操作",align:"center"}],pagination:{total:0},search:{column:[{prop:"keyword",type:"el-input",value:"",autoQuery:!1,attributes:{placeholder:"账号/昵称"}}]},fixedHeight:!1,fetchData:n}),p=I({}),g=B(()=>e.userInfo?.account);async function n(f){const t=await it({...f},{headers:c}),{rows:m,total:k}=t.data||{};d.value.data=m||[],d.value.pagination.total=k||0}function _(f){le.confirm(`确定踢出用户【${f.nickname||f.account}】吗?`,"提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning",beforeClose:(t,m,k)=>{t==="confirm"?(m.confirmButtonLoading=!0,nt({userId:f._id},{headers:c}).then(()=>{K.success("踢出成功"),d.value.data=d.value.data?.filter($=>$._id!==f._id)||[],k()}).finally(()=>{m.confirmButtonLoading=!1})):k()}}).catch(()=>{})}async function C(f){p.value[f._id]=!0,await ke(),u.value?.focus()}async function b(f){if(!f.teamUserNickname){delete p.value[f._id];return}st({userId:f._id,teamUserNickname:f.teamUserNickname},{headers:c}).then(()=>{K.success("更新成功"),delete p.value[f._id]})}return(f,t)=>{const m=x("el-input"),k=x("Edit"),$=x("el-icon"),U=x("el-table-column"),A=x("el-tag"),D=x("el-button");return y(),O("div",va,[a(se,{tableConfig:d.value,border:""},Oe({teamUserNickname:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[w("div",ha,[p.value[i._id]?(y(),E(m,{key:0,ref:"nicknameInput",modelValue:i.teamUserNickname,"onUpdate:modelValue":r=>i.teamUserNickname=r,placeholder:"请输入你在团队的昵称",onKeyup:Pe(r=>b(i),["enter"]),onBlur:r=>b(i)},null,8,["modelValue","onUpdate:modelValue","onKeyup","onBlur"])):(y(),O("span",ga,oe(i.teamUserNickname||"--"),1)),i.account===g.value?(y(),E($,{key:2,class:"cursor-pointer",onClick:r=>C(i)},{default:o(()=>[a(k)]),_:1},8,["onClick"])):F("",!0)])]),_:1},16)]),account:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[w("div",ba,[w("span",null,oe(i.account),1),i.account===g.value?(y(),E(A,{key:0,type:"info"},{default:o(()=>[...t[0]||(t[0]=[R("我",-1)])]),_:1})):F("",!0)])]),_:1},16)]),avatar:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[a(Ve,{src:i.avatar,size:40},null,8,["src"])]),_:1},16)]),_:2},[L(l).isCreator?{name:"operation",fn:o(({col:s})=>[a(U,W(ae(s)),{default:o(({row:i})=>[i.type==="user"?(y(),E(D,{key:0,onClick:r=>_(i)},{default:o(()=>[...t[1]||(t[1]=[R("踢出",-1)])]),_:1},8,["onClick"])):F("",!0)]),_:1},16)]),key:"0"}:void 0]),1032,["tableConfig"])])}}}),Ca={class:"flex gap-2"},wa=P({__name:"index",props:{modelValue:{type:String,default:""},modelModifiers:{}},emits:["update:modelValue"],setup(N){const e=Ee(N,"modelValue"),c=Se(),h=I({resetBtn:!1,submitBtn:!1}),l=I({}),u=I({}),d=B(()=>[{type:"input",field:"email",title:"邮箱",value:c?.userInfo?.email,props:{disabled:!0},validate:[{required:!0,message:"请输入绑定的邮箱",trigger:"blur"},{validator:(g,n,_)=>{Ft(n)?_():_(new Error("请输入正确的邮箱"))},trigger:"blur"}]},{type:"slotAuthCode",field:"authCode",title:"验证码",value:"",validate:[{required:!0,message:"请输入验证码",trigger:"blur"}]}]);function p({end:g,startCountdown:n}){l.value.validateField("email").then(async()=>{await Yt({email:u.value.email}).then(()=>{K.success("验证码已发送"),n()})}).finally(()=>{g()})}return ct(()=>{e.value=u.value.authCode?.toString()??""}),(g,n)=>{const _=x("el-input"),C=x("form-create");return y(),E(C,{rule:d.value,modelValue:u.value,"onUpdate:modelValue":n[0]||(n[0]=b=>u.value=b),api:l.value,"onUpdate:api":n[1]||(n[1]=b=>l.value=b),option:h.value},{"type-slotAuthCode":o(b=>[w("div",Ca,[a(_,{"model-value":String(b.model.value),onInput:f=>b.model.callback(f),class:"flex-1",placeholder:"请输入验证码"},null,8,["model-value","onInput"]),a(Kt,{text:"获取验证码","countdown-text":"{n}秒后重新获取",duration:60,onSend:p})])]),_:1},8,["rule","modelValue","api","option"])}}}),ka=P({__name:"SetCreator",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Te(),d=ze(),p=J(h)(),g=I({}),n=I({resetBtn:!1,submitBtn:!1,form:{labelWidth:"auto"}}),_=I({}),C=B(()=>[{type:"input",field:"name",title:"团队名称",value:p.teamName,props:{placeholder:"请输入团队名称"},on:{blur:()=>{g.value.validateField("name").then(()=>{b({name:_.value.name})})}},validate:[{required:!0,message:"请输入团队名称",trigger:"blur"},{min:2,max:10,message:"长度在 2 到 10 个字符",trigger:"blur"}]},{type:"switch",field:"isApplyNeedAudit",title:"申请审核",value:p.isApplyNeedAudit,on:{change:t=>{b({isApplyNeedAudit:t})}}},{type:"switch",field:"isShowRepeatComp",title:"展示重复组件",value:p.isShowRepeatComp,on:{change:t=>{b({isShowRepeatComp:t})}}},{type:"switch",field:"isAllowCompAuthorDelete",title:"作者删除组件权限",value:p.isAllowCompAuthorDelete,on:{change:t=>{b({isAllowCompAuthorDelete:t})}}},{type:"input",field:"description",title:"团队介绍",value:p.description,props:{placeholder:"请输入团队介绍",type:"textarea",autosize:{minRows:2,maxRows:4},maxlength:200,showWordLimit:!0},on:{blur:()=>{g.value.validateField("description").then(()=>{b({description:_.value.description})})}},validate:[{min:3,max:200,message:"长度在 3 到 200 个字符",trigger:"blur"}]},{type:"slotAction",field:"action",title:"操作"}]);function b(t){rt({...t},{headers:c}).then(()=>{K.success("更新成功");const m=d.createdTeams.find(k=>k._id===h);m&&t.name&&d.updateCreatedTeamItemById(h??"",{...m,...t}),p.setTeamDetail({...p.teamDetail,...t})})}const f=async()=>{if(await le.confirm("确定解散团队吗,解散后所有成员和组件将被移除,并且无法恢复?","删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;const m=I("");le({title:"请输入验证码",message:()=>ut(wa,{modelValue:m.value,"onUpdate:modelValue":k=>m.value=k}),beforeClose:(k,$,U)=>{if(k==="confirm"){if(!m.value){K.error("请输入验证码");return}$.confirmButtonLoading=!0,dt({authCode:m.value},{headers:c}).then(()=>{K.success("解散团队成功"),d.removeCreatedTeam(h??""),u.delViewAndJumpToPrev(e.path,!0,l),U()}).finally(()=>{$.confirmButtonLoading=!1})}else U()}}).catch(()=>{})};return(t,m)=>{const k=x("el-button"),$=x("form-create");return y(),E($,{rule:C.value,modelValue:_.value,"onUpdate:modelValue":m[0]||(m[0]=U=>_.value=U),option:n.value,api:g.value,"onUpdate:api":m[1]||(m[1]=U=>g.value=U)},{"type-slotAction":o(()=>[a(k,{type:"danger",onClick:f},{default:o(()=>[...m[2]||(m[2]=[R("解散团队",-1)])]),_:1})]),_:1},8,["rule","modelValue","option","api"])}}}),xa=P({__name:"SetMember",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Te(),d=ze(),p=B(()=>({showReset:!1,showSubmit:!1,rows:[{type:"slot",label:"操作",prop:"action"}]})),g=async()=>{await le.confirm("确定退出团队吗?","退出确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})==="confirm"&&pt({headers:c}).then(()=>{K.success("退出成功"),d.removeJoinedTeam(h??""),u.delViewAndJumpToPrev(e.path,!0,l)})};return(n,_)=>{const C=x("el-button");return y(),E(jt,{config:p.value},{action:o(()=>[a(C,{onClick:g},{default:o(()=>[..._[0]||(_[0]=[R("退出团队",-1)])]),_:1})]),_:1},8,["config"])}}}),Sa={class:"size-full"},Ta=P({__name:"index",setup(N){const e=ne(),{teamId:c}=e.params,h=J(c)();return(l,u)=>{const d=x("el-card");return y(),O("div",Sa,[a(d,{class:"w-[50%] mx-auto"},{header:o(()=>[...u[0]||(u[0]=[w("span",null,"团队设置",-1)])]),default:o(()=>[w("div",null,[L(h).isCreator?(y(),E(ka,{key:0})):F("",!0),L(h).isMember?(y(),E(xa,{key:1})):F("",!0)])]),_:1})])}}}),$a={class:"size-full"},Aa={key:0},Da={key:1},Ma=P({__name:"index",setup(N){const{headers:e,teamId:c}=q(),h=J(c)(),l=I({data:[],column:[{slot:"avatar",prop:"userId.avatar",label:"头像",align:"center"},{prop:"userId.account",label:"账号",align:"center"},{prop:"userId.nickname",label:"昵称",align:"center",formatter(p){return p.userId.nickname||"--"}},{slot:"operation",prop:"operation",label:"操作",align:"center"}],pagination:{total:0},search:{column:[{prop:"keyword",type:"el-input",value:"",autoQuery:!1,attributes:{placeholder:"账号/昵称"}}]},fixedHeight:!1,fetchData:u});async function u(p){const g=await ft({...p},{headers:e}),{rows:n,total:_}=g.data||{};l.value.data=n||[],l.value.pagination.total=_||0}function d(p,g,n){n.start(),mt({applyId:p._id,isAgree:g},{headers:e}).then(()=>{l.value.data=l.value.data?.map(_=>(_._id===p._id&&(_.status=g?"approved":"rejected"),_)),K.success("处理成功")}).finally(()=>{n.end()})}return(p,g)=>{const n=x("el-table-column"),_=x("el-button"),C=x("el-tag");return y(),O("div",$a,[a(se,{tableConfig:l.value,border:""},Oe({avatar:o(({col:b})=>[a(n,W(ae(b)),{default:o(({row:f})=>[a(Ve,{src:f.userId.avatar,size:40},null,8,["src"])]),_:1},16)]),_:2},[L(h).isCreator?{name:"operation",fn:o(({col:b})=>[a(n,W(ae(b)),{default:o(({row:f})=>[f.status==="pending"?(y(),O("div",Aa,[a(ge,null,{default:o(({instance:t,loading:m})=>[a(_,{type:"danger",loading:m,onClick:k=>d(f,!1,t)},{default:o(()=>[...g[0]||(g[0]=[R("拒绝",-1)])]),_:1},8,["loading","onClick"]),a(_,{type:"primary",loading:m,onClick:k=>d(f,!0,t)},{default:o(()=>[...g[1]||(g[1]=[R("同意",-1)])]),_:1},8,["loading","onClick"])]),_:2},1024)])):(y(),O("div",Da,[a(C,{type:"info"},{default:o(()=>[R(oe(f.status==="approved"?"已同意":"已拒绝"),1)]),_:2},1024)]))]),_:1},16)]),key:"0"}:void 0]),1032,["tableConfig"])])}}}),La={class:"size-full flex flex-col overflow-auto"},Ia={class:"flex gap-2"},Ra={class:"flex-1 flex flex-col gap-2 overflow-auto"},Na={class:"flex gap-1"},Ea={class:"flex items-center gap-1"},Ua={class:"text-[#f40] text-[12px]"},Ba={class:"flex-1 overflow-auto"},Oa={class:"custom-tree-node"},Va={key:1},Pa={key:0},za={class:"flex gap-1 items-center"},Ga=P({__name:"TreeMenu",setup(N){const e={children:"children",label:"label",isLeaf:v=>!v.children||v.children.length===0},{headers:c,teamId:h}=q(),l=J(h)(),u=I(""),d=I([]),p=pe("tree"),g=I({}),n=I([]),_=I("[]"),C=I({}),b=I(!1),f=B(()=>{const v=JSON.stringify(n.value),T=_.value;return v!==T||!_t(l.selectedRowsToLeafNodeMap,C.value)}),t=B(()=>l.selectedRows.length>0),m=()=>({id:Ot(),label:"默认分组",children:[],isEdit:!1}),k=(v,T)=>{v&&(g.value[T]=v)},$=v=>{d.value.includes(v)||(d.value=[...d.value,v])},U=v=>{const j=he(n.value,v.id).map(V=>V.id).concat(v.id);d.value=d.value.filter(V=>!j.includes(V)),b.value=!1},A=v=>{$(v.id)},D=v=>{v.isEdit=!1},s=v=>{v.isEdit=!1},i=(v,T)=>v?T.label.includes(v):!0,r=()=>{const v={menuGroup:n.value,compIdInLeafNodeMap:l.selectedRowsToLeafNodeMap};wt(v,{headers:c}).then(()=>{K.success("保存成功"),C.value=ue(l.selectedRowsToLeafNodeMap),l.setTeamDetail({...l.teamDetail,menuGroup:ue(n.value)})})},S=async v=>{v.isEdit=!0,await ke(),g.value[v.id]?.focus(),g.value[v.id]?.select()},M=async v=>{const T=m();v.children||(v.children=[]),v.children.push(T),n.value=[...n.value],await ke();const j={};for(const V in l.selectedRowsToLeafNodeMap)l.selectedRowsToLeafNodeMap[V]===v.id&&(j[V]=T.id);l.addSelectedRowsToLeafNodeMap(j),$(T.id)},G=async(v,T)=>{const we=he(n.value,T.id).filter(te=>te.children?.length===0).map(te=>te.id).concat(T.id),X=[];for(const te in l.selectedRowsToLeafNodeMap)we.includes(l.selectedRowsToLeafNodeMap[te]??"")&&X.push(te);if(X?.length){if(await le.confirm("确认删除该分组吗?删除后该分组下的所有组件将被移除分组","提示",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;l.delSelectedRowsToLeafNodeMap(X)}const H=v.parent,Q=H?.data.children||H?.data,Je=Q.findIndex(te=>te.id===T.id);Q.splice(Je,1),n.value=[...n.value]},z=()=>{const v=m();n.value.push(v)},Y=()=>{if(!n.value.length)return;const v=n.value.map(T=>he(n.value,T.id).map(V=>V.id)).reduce((T,j)=>T.concat(j),[]);v.length&&(d.value=v,b.value=!0)},ie=v=>{f.value&&v.preventDefault()},We=v=>{const T=l.selectedRows.reduce((j,V)=>({...j,[V]:v.id}),{});l.addSelectedRowsToLeafNodeMap(T),l.setSelectedRows([]),K.success("添加成功")},Ie=v=>Object.values(l.selectedRowsToLeafNodeMap).filter(T=>T===v.id).length;return ce(u,v=>{p.value.filter(v)}),ce(()=>l.menuGroup,v=>{n.value=ue(v),_.value=JSON.stringify(v)},{immediate:!0}),ce(()=>JSON.stringify(n.value),()=>{l.setDataSourceCopy(ue(n.value))},{immediate:!0}),ce(()=>l.selectedRowsToLeafNodeMap,v=>{C.value=ue(v)},{immediate:!0,once:!0}),ce(()=>f.value,v=>{l.setCanSaveCopy(v)},{immediate:!0,deep:!0}),$e(()=>{window.addEventListener("beforeunload",ie)}),me(()=>{window.removeEventListener("beforeunload",ie)}),(v,T)=>{const j=x("el-input"),V=x("el-button"),we=x("el-tree");return y(),O("div",La,[T[5]||(T[5]=w("h2",{class:"text-lg font-bold mb-2"},"分组配置",-1)),w("div",Ia,[a(j,{modelValue:u.value,"onUpdate:modelValue":T[0]||(T[0]=X=>u.value=X),class:"mb-2",placeholder:"请输入分组名称"},null,8,["modelValue"])]),w("div",Ra,[w("div",Na,[a(V,{size:"small",onClick:Y,disabled:b.value},{default:o(()=>[...T[1]||(T[1]=[R("展开全部",-1)])]),_:1},8,["disabled"]),a(V,{type:"primary",size:"small",onClick:z,icon:L(vt)},{default:o(()=>[...T[2]||(T[2]=[R("创建分组",-1)])]),_:1},8,["icon"]),w("div",Ea,[a(V,{type:"primary",disabled:!f.value,size:"small",onClick:r,icon:L(ht)},{default:o(()=>[...T[3]||(T[3]=[R(" 保存 ",-1)])]),_:1},8,["disabled","icon"]),be(w("span",Ua,"未保存",512),[[gt,f.value]])])]),w("div",Ba,[a(we,{ref:"tree",data:n.value,"default-expanded-keys":d.value,"expand-on-click-node":!1,"filter-node-method":i,props:e,"node-key":"id",onNodeExpand:A,onNodeCollapse:U},{default:o(({node:X,data:H})=>[w("div",Oa,[H.isEdit?(y(),E(j,{key:0,modelValue:H.label,"onUpdate:modelValue":Q=>H.label=Q,autofocus:"",size:"small",onKeydown:Pe(Q=>D(H),["enter"]),onBlur:Q=>s(H),onChange:Q=>D(H),ref:Q=>k(Q,H.id)},null,8,["modelValue","onUpdate:modelValue","onKeydown","onBlur","onChange"])):(y(),O("span",Va,[R(oe(X.label)+" ",1),X.isLeaf&&Ie(H)>0?(y(),O("span",Pa," ("+oe(Ie(H))+") ",1)):F("",!0)])),w("div",za,[a(V,{type:"info",link:"",onClick:Q=>S(H),icon:L(bt)},null,8,["onClick","icon"]),a(V,{type:"primary",link:"",onClick:Q=>M(H),icon:L(yt)},null,8,["onClick","icon"]),a(V,{type:"danger",link:"",onClick:Q=>G(X,H),icon:L(Ct)},null,8,["onClick","icon"]),a(V,{disabled:!X.isLeaf||!t.value,type:"success",link:"",onClick:Q=>We(H)},{default:o(()=>[...T[4]||(T[4]=[R(" 添加组件 ",-1)])]),_:1},8,["disabled","onClick"])])])]),_:1},8,["data","default-expanded-keys"])])])])}}}),Ha=Ge(Ga,[["__scopeId","data-v-a4f31447"]]),Fa={class:"flex w-full mb-2"},Ka={class:"flex-1"},Ya={class:"flex w-full h-[30px] items-center gap-2"},ja=P({__name:"CompGroupList",setup(N){const e=ne(),{headers:c,teamId:h}=q(),l=de(),u=Ce(`${e.path}_${_e.TEAM_COMP_GROUP_LIST}`)();Z(ee.COMP_LIST_STORE,u);const d=new Map;Z(ee.CALLBACKS,d);const p=J(h)(),g=B(()=>p.menuGroup),n=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"isGroup",label:"是否分组",type:"el-select",value:"",attributes:{style:{width:"120px"},clearable:!0,options:[{label:"已分组",value:"Yes"},{label:"未分组",value:"No"}]}},{prop:"group",type:"el-cascader",label:"分组",value:"",attributes:{options:g,clearable:!0,props:{value:"id",checkStrictly:!0}}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},autoLoading:!1,fetchData:t}),_=B(()=>n.value.data?.length>0&&p.selectedRows.length===n.value.data?.length),C=B(()=>_.value?"取消全选":"全选"),b=B(()=>n.value.data?.length?n.value.data.some(s=>!D(s._id)):!1);function f(s,i){if(s.length<=1)return i([]);ve({keyword:s,type:"compTeam"},{headers:c}).then(r=>{const{keywords:S=[]}=r.data||{};i(S)})}async function t(s){u.setLoading(!0);const{group:i=[]}=s||{};delete s.group;const r=i?.[i.length-1];if(r){let z=p.getSelectedGroupLeafNodes(r);z=z.length===0?[r]:z,s.leafNodeIds=z}const S=await De({...s,scene:"library"},{headers:c}),{rows:M,total:G}=S.data||{};await u.renderList(M||[]),n.value.data=M||[],n.value.pagination.total=G||0}function m(s){l.push({path:`/previewTeam/${h}/${s._id}`})}function k(s,i){let r=[...p.selectedRows];s?r.push(i):r=r.filter(S=>S!==i),p.setSelectedRows(r)}function $(){if(_.value){p.setSelectedRows([]);return}const s=n.value.data.filter(i=>!D(i._id)).map(i=>i._id);p.setSelectedRows(s)}function U(s){const i=p.selectedRowsToLeafNodeMap[s];return i?Vt(p.dataSourceCopy,i).reverse().map(S=>S.label).join(" / "):""}function A(s){p.delSelectedRowsToLeafNodeMap([s]),K.success("取消分组成功")}function D(s){return!!p.selectedRowsToLeafNodeMap[s]}return me(()=>{u.$reset()}),(s,i)=>{const r=x("el-button"),S=x("el-tag"),M=x("el-checkbox"),G=x("el-link"),z=Ae("loading");return be((y(),O("div",null,[a(se,{tableConfig:n.value},{tableBefore:o(()=>[w("div",Fa,[a(r,{type:"primary",onClick:$,disabled:!b.value},{default:o(()=>[R(oe(C.value),1)]),_:1},8,["disabled"])])]),table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:Y})=>[w("div",Ka,[Y._id?(y(),E(Le,W(re({key:0},{id:Y._id,version:Y.version})),null,16)):F("",!0)])]),compItemFooter:o(({attrs:Y})=>[w("div",Ya,[D(Y._id)?(y(),E(S,{key:0,type:"info",closable:"","disable-transitions":!0,round:"",onClose:ie=>A(Y._id)},{default:o(()=>[R(oe(U(Y._id)),1)]),_:2},1032,["onClose"])):(y(),E(M,{key:1,label:"选择","model-value":L(p).selectedRows.includes(Y._id),onChange:ie=>k(ie,Y._id)},null,8,["model-value","onChange"])),a(G,{class:"inline-block ml-auto",type:"primary",onClick:ie=>m(Y)},{default:o(()=>[...i[0]||(i[0]=[R(" 预览 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["tableConfig"])])),[[z,L(u).loading]])}}}),Qa={class:"flex gap-3"},Wa={class:"w-[400px] border border-[#ccc] rounded-sm max-h-[60vh] overflow-hidden sticky top-10 p-2"},Ja={class:"flex-1 border border-[#ccc] rounded-sm p-2"},qa=P({__name:"index",setup(N){return(e,c)=>(y(),O("div",Qa,[w("div",Wa,[a(Ha)]),w("div",Ja,[a(ja)])]))}}),Xa={class:"size-full overflow-hidden"},Za={class:"flex-1"},eo={class:"flex-1 flex justify-end items-center gap-2"},to=P({__name:"index",setup(N){const e=ne(),c=de(),h=Se(),{headers:l,teamId:u}=q(),d=Ce(`${e.path}_${_e.TEAM_COMP_LIST}`)();Z(ee.COMP_LIST_STORE,d);const p=new Map;Z(ee.CALLBACKS,p);const g=Fe(e.path)();Z(ee.COMP_EDIT_STORE,g);const n=J(u)(),_=pe("compUpdateDialog"),C=B(()=>n.menuGroup),b=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:f,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}},{prop:"group",type:"el-cascader",label:"分组",value:"",attributes:{options:C,clearable:!0,props:{value:"id",checkStrictly:!0}}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},autoLoading:!1,fetchData:t});function f(s,i){if(s.length<=1)return i([]);ve({keyword:s,type:"compTeam"},{headers:l}).then(r=>{const{keywords:S=[]}=r.data||{};i(S)})}async function t(s){d.setLoading(!0);const{group:i=[]}=s||{};delete s.group;const r=i?.[i.length-1];if(r){let z=n.getSelectedGroupLeafNodes(r);z=z.length===0?[r]:z,s.leafNodeIds=z}const S=await De({...s,scene:"library"},{headers:l}),{rows:M,total:G}=S.data||{};await d.renderList(M||[]),b.value.pagination.total=G||0}function m(s){c.push({path:`/previewTeam/${u}/${s._id}`})}function k(s){const{_id:i,totalDownloadCount:r=0}=s;d.updateCompListItemById(i,{totalDownloadCount:r+1})}function $(s){const i=s?.canUpdateUsers?.includes(h.userId),r=s?.authorId?._id===h.userId;return i||r}async function U(s){const i=He.service({fullscreen:!0});try{const r=s._id,S=await kt({compId:r},{headers:l}),{result:M}=S.data||{};if(M==="cannot_update"){le.confirm(Me.CONFIRM.NO_UPDATE_PERMISSION(),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).finally(()=>{});return}_.value?.open(s._id)}finally{i.close()}}function A(s){return je(s._id)().isLocalExist?"primary":"info"}function D(s){Qe({compId:s}).then(i=>{d.updateCompListItemById(s,i.data)})}return me(()=>{d.$reset()}),(s,i)=>{const r=x("el-link"),S=Ae("loading");return be((y(),O("div",Xa,[a(se,{tableConfig:b.value},{table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:M})=>[w("div",Za,[M._id?(y(),E(Le,W(re({key:0},{id:M._id,version:M.version})),null,16)):F("",!0)])]),compItemFooterOperate:o(({attrs:M})=>[w("div",eo,[$(M)?(y(),E(r,{key:0,type:A(M),onClick:G=>U(M)},{default:o(()=>[...i[0]||(i[0]=[R(" 更新 ",-1)])]),_:1},8,["type","onClick"])):F("",!0),a(Ke,re({id:M._id,name:M.name,version:M.version},{onDownloadSuccess:G=>k(M)}),null,16,["onDownloadSuccess"]),a(r,{class:"inline-block",type:"primary",onClick:G=>m(M)},{default:o(()=>[...i[1]||(i[1]=[R(" 预览 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["tableConfig"]),a(Ye,{ref:"compUpdateDialog",onUpdateSuccess:D},null,512)])),[[S,L(d).loading]])}}}),ao={class:"size-full"},oo={class:"flex-1"},lo={class:"flex-1 flex justify-end items-center gap-2"},no=P({__name:"index",setup(N){const e=de(),c=ne(),{headers:h,teamId:l}=q(),u=Ce(`${c.path}_${_e.TEAM_MY_COMP_LIST}`)();Z(ee.COMP_LIST_STORE,u);const d=Fe(`${c.path}_${_e.TEAM_MY_COMP_UPDATE}`)();Z(ee.COMP_EDIT_STORE,d);const p=new Map;Z(ee.CALLBACKS,p);const g=J(l)(),n=pe("compUpdateDialog"),_=I({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:C,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}}]},pagination:{total:0},fixedHeight:!1,autoLoading:!1,fetchData:b});function C(A,D){if(A.length<=1)return D([]);ve({keyword:A,type:"compTeamMy"},{headers:h}).then(s=>{const{keywords:i=[]}=s.data||{};D(i)})}async function b(A){u.setLoading(!0);const D=await St({...A},{headers:h}),{rows:s,total:i}=D.data||{};await u.renderList(s||[]),_.value.pagination.total=i||0}async function f(A){const D=He.service({fullscreen:!0});try{if(await le.confirm(Me.CONFIRM.TEAM_DEL_COMP(A.name),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;await xt({compIds:[A._id]},{headers:h}).then(()=>{K.success("删除成功"),u.delCompListById(A._id),g.setTeamDetail({...g.teamDetail,compCount:g.teamDetail.compCount-1})})}finally{D.close()}}function t(A){e.push({path:`/previewTeam/${l}/${A._id}`})}async function m(A){n.value?.open(A._id)}function k(A){const{_id:D,totalDownloadCount:s=0}=A;u.updateCompListItemById(D,{totalDownloadCount:s+1})}function $(A){return je(A._id)().isLocalExist?"primary":"info"}function U(A){Qe({compId:A}).then(D=>{u.updateCompListItemById(A,D.data)})}return me(()=>{u.$reset()}),(A,D)=>{const s=x("el-link"),i=Ae("loading");return be((y(),O("div",ao,[a(se,{tableConfig:_.value,border:""},{table:o(()=>[a(ye,null,{compItemToolBar:o(({attrs:r})=>[w("div",oo,[r._id?(y(),E(Le,W(re({key:0},{id:r._id,version:r.version})),null,16)):F("",!0)])]),compItemFooterOperate:o(({attrs:r})=>[w("div",lo,[a(s,{type:$(r),onClick:S=>m(r)},{default:o(()=>[...D[0]||(D[0]=[R(" 更新 ",-1)])]),_:1},8,["type","onClick"]),a(Ke,re({id:r._id,name:r.name,version:r.version},{onDownloadSuccess:S=>k(r)}),null,16,["onDownloadSuccess"]),a(s,{class:"inline-block",type:"primary",onClick:S=>t(r)},{default:o(()=>[...D[1]||(D[1]=[R(" 预览 ",-1)])]),_:1},8,["onClick"]),L(g).isAllowCompAuthorDelete?(y(),E(s,{key:0,type:"danger",onClick:S=>f(r)},{default:o(()=>[...D[2]||(D[2]=[R("删除",-1)])]),_:1},8,["onClick"])):F("",!0)])]),_:1})]),_:1},8,["tableConfig"]),a(Ye,{ref:"compUpdateDialog",onUpdateSuccess:U},null,512)])),[[i,L(u).loading]])}}}),so={class:"size-full"},io=P({__name:"index",setup(N){const e=de(),{headers:c,teamId:h}=q(),l=J(h)(),u=I([]),d=I({data:[],column:[{prop:"name",label:"组件名称",align:"center"},{prop:"authorId.nickname",label:"作者",align:"center",formatter:t=>t.teamUserNickname||t.authorId?.nickname||"--"},{prop:"version",label:"组件版本",align:"center"},{prop:"desc",label:"组件描述",align:"center",showOverflowTooltip:{popperClass:"table-text-tooltip"}},{prop:"createdAt",label:"创建时间",align:"center",formatter:t=>t.createdAt?Ne(t.createdAt).format("YYYY-MM-DD"):"--"},{prop:"updatedAt",label:"更新时间",align:"center",formatter:t=>t.updatedAt?Ne(t.updatedAt).format("YYYY-MM-DD"):"--"},{slot:"canUpdateUsers",prop:"canUpdateUsers",label:"更新授权",align:"center"},{slot:"operation",prop:"operation",label:"操作",align:"center"}],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:g,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}}]},pagination:{total:0},fixedHeight:!1,fetchData:n}),p=B(()=>u.value.map(t=>({value:t._id,label:t.teamUserNickname||t.nickname||t.account})));function g(t,m){if(t.length<=1)return m([]);ve({keyword:t,type:"compTeam"},{headers:c}).then(k=>{const{keywords:$=[]}=k.data||{};m($)})}async function n(t){const m=await De({...t,scene:"management"},{headers:c}),{rows:k,total:$}=m.data||{};d.value.data=k||[],d.value.pagination.total=$||0}async function _(t,m){m.start();try{if(await le.confirm(Me.CONFIRM.TEAM_DEL_COMP(t.name),"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;await At({compIds:[t._id]},{headers:c}).then(()=>{K.success("删除成功"),d.value.data=d.value.data.filter($=>$._id!==t._id),l.setTeamDetail({...l.teamDetail,compCount:l.teamDetail.compCount-1})})}finally{m.end()}}function C(t){e.push({path:`/previewTeam/${h}/${t._id}`})}function b(){Dt({headers:c}).then(t=>{u.value=t.data?.rows||[]})}function f(t){const m={compId:t._id,canUpdateUserIds:t.canUpdateUsers||[]};Mt(m,{headers:c})}return $e(()=>{b()}),(t,m)=>{const k=x("el-option"),$=x("el-select"),U=x("el-table-column"),A=x("el-button");return y(),O("div",so,[a(se,{tableConfig:d.value,border:""},{canUpdateUsers:o(({col:D})=>[a(U,W(ae(D)),{default:o(({row:s})=>[a($,{modelValue:s.canUpdateUsers,"onUpdate:modelValue":i=>s.canUpdateUsers=i,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"选择可更新用户",onChange:i=>f(s)},{header:o(()=>[...m[0]||(m[0]=[w("span",{class:"text-[#ccc]"},"作者自带授权",-1)])]),default:o(()=>[(y(!0),O(Tt,null,$t(p.value,i=>(y(),E(k,{key:i.value,label:i.label,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])]),_:1},16)]),operation:o(({col:D})=>[a(U,W(ae(D)),{default:o(({row:s})=>[a(A,{type:"primary",onClick:i=>C(s)},{default:o(()=>[...m[1]||(m[1]=[R("预览",-1)])]),_:1},8,["onClick"]),a(ge,null,{default:o(({instance:i,loading:r})=>[a(A,{type:"danger",loading:r,onClick:S=>_(s,i)},{default:o(()=>[...m[2]||(m[2]=[R("删除",-1)])]),_:1},8,["loading","onClick"])]),_:2},1024)]),_:1},16)]),_:1},8,["tableConfig"])])}}}),co={class:"mb-3 h-[200px]"},ro={class:"bg-color bg-[#ccc] sticky top-0 w-full bg-[#f5f7fa] z-[100]"},uo={class:"mt-2"},po=P({__name:"index",setup(N){const e=I(null);Ht(e);const c=[{label:"组件库",value:"TeamCompList",component:to,visible:()=>!0},{label:"分组配置",value:"TeamCompGroup",component:qa,visible:()=>d.isCreator},{label:"组件管理",value:"TeamCompManage",component:io,visible:()=>d.isCreator},{label:"我的组件",value:"TeamMyCompList",component:no,visible:()=>!0},{label:"团队成员",value:"TeamMemberList",component:ya,visible:()=>!0},{label:"加入申请",value:"TeamApplyList",component:Ma,visible:()=>d.isCreator},{label:"设置",value:"TeamSet",component:Ta,visible:()=>!0}],{headers:h,teamId:l}=q(),u=Te(),d=J(l)(),p=Lt(`${It}-${l}`,c[0]?.value),g=B(()=>Object.keys(d.teamDetail).length===0),n=B(()=>c.filter(f=>f.visible())),_=B(()=>n.value.find(t=>t.value===p.value)?.component||{render:()=>null}),C=async(f,t,m)=>{if(!d.canSaveCopy){m();return}const k=f.matched[f.matched.length-1],$=t.matched[t.matched.length-1];try{if(!k||!$){m();return}(!f.redirectedFrom||k.path===$.path)&&await le.confirm("分组配置数据未保存,确定要离开吗?","提示",{confirmButtonText:"离开",cancelButtonText:"取消",type:"warning"}),m()}catch{m(!1)}};function b(f,t){u.addPayLoad(`/team/${f}`,{name:t??""})}return Rt(C),Nt(C),$e(()=>{d.setLoading(!0),Et({headers:h}).then(f=>{const{compIdInLeafNodeMap:t}=f.data;d.setTeamDetail(f.data),d.setSelectedRowsToLeafNodeMap(t||{}),b(l??"",d.teamDetail?.name??"")}).catch(()=>{d.$reset()}).finally(()=>{d.setLoading(!1)})}),me(()=>{d.$reset()}),(f,t)=>{const m=x("el-segmented"),k=x("el-backtop");return y(),O("div",{class:"size-full overflow-x-hidden overflow-y-scroll page",ref_key:"compListEl",ref:e},[a(Bt,{isEmpty:g.value,loading:L(d).loading,emptyDescription:"暂无团队信息"},{default:o(()=>[w("div",co,[a(_a)]),w("div",ro,[a(m,{modelValue:L(p),"onUpdate:modelValue":t[0]||(t[0]=$=>Ut(p)?p.value=$:null),options:n.value,size:"default"},null,8,["modelValue","options"])]),w("div",uo,[a(Ue,null,{default:o(()=>[(y(),E(Be,null,[(y(),E(xe(_.value)))],1024))]),_:1})]),a(k,{right:100,bottom:100,target:".page"})]),_:1},8,["isEmpty","loading"])],512)}}}),Ao=Ge(po,[["__scopeId","data-v-fda3e20e"]]);export{Ao as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e}from"./index.vue_vue_type_script_setup_true_lang-mjupg3Z_.js";import{d as a,c as o,b as t,o as s,v as n}from"./index-cHbH7T5D.js";const c={class:"terminal-container"},_=a({__name:"index",setup(r){return(d,i)=>(s(),o("div",c,[t(e)]))}}),f=n(_,[["__scopeId","data-v-45a9da26"]]);export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as L}from"./index-
|
|
1
|
+
import{c as L}from"./index-CPx4gS-Z.js";import{a as B,_ as D,b as S}from"./index.vue_vue_type_script_setup_true_lang-C2jCrlom.js";import{d as b,G as O,g as x,k as E,aa as P,D as I,r as T,W as $,X as M,u as R,c as N,b as i,w as l,a as d,Z as p,f as V,O as m,P as A,B as z,p as F,o as u,a4 as _,a5 as f}from"./index-cHbH7T5D.js";import{g as K}from"./index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js";import{B as Q}from"./index-DNxTJC5Q.js";import{k as W}from"./v1Keyword-JxL-DecN.js";import{_ as Y}from"./index.vue_vue_type_script_setup_true_lang-Deq2IwpY.js";import"./v1Module-Clll6gmK.js";import"./index-BfqhDZ1z.js";import"./index.vue_vue_type_style_index_0_lang-CVT5yNeL.js";const j={class:"size-full"},q={class:"flex-1"},G={class:"flex-1 flex justify-end items-center gap-2"},ie=b({__name:"index",setup(H){const C=O(),v=x(),a=L(C.path)();_(f.COMP_LIST_STORE,a);const r=new Map;_(f.CALLBACKS,r);const c=E({data:[],search:{column:[{prop:"keyword",type:"el-autocomplete",label:"关键词",value:"",autoQuery:!1,attributes:{placeholder:"请输入组件名称/描述",fetchSuggestions:g,triggerOnFocus:!1,style:"width: 200px",fitInputWidth:!0}}]},pagination:{total:0,attributes:{pageSizes:[10,20,30]}},autoLoading:!1,fetchData:w});function g(o,t){if(o.length<=1)return t([]);W({keyword:o,type:"compMyCollect"}).then(s=>{const{keywords:n=[]}=s.data||{};t(n)})}async function w(o){a.setLoading(!0);const t=await K(o),{rows:s,total:n}=t.data||{};await a.renderList(s||[]),c.value.pagination.total=n||0}function h(o){v.push({path:`/preview/${o._id}`})}function y(o){const{_id:t,totalDownloadCount:s=0}=o;a.updateCompListItemById(t,{totalDownloadCount:s+1})}return r.set(P.AFTER_COMP_CANCEL_COLLECT,o=>{a.delCompListById(o)}),I(()=>{a.$reset()}),(o,t)=>{const s=T("el-link"),n=$("loading");return M((u(),N("div",j,[i(Q,{tableConfig:c.value},{table:l(()=>[i(B,{class:"overflow-y-scroll"},{compItemToolBar:l(({attrs:e})=>[d("div",q,[e._id?(u(),z(S,m(p({key:0},{id:e._id,version:e.version})),null,16)):F("",!0)])]),compItemFooterOperate:l(({attrs:e})=>[d("div",G,[i(D,p({id:e._id,name:e.name,version:e.version},{onDownloadSuccess:k=>y(e)}),null,16,["onDownloadSuccess"]),i(s,{type:"primary",onClick:k=>h(e)},{default:l(()=>[...t[0]||(t[0]=[V("预览",-1)])]),_:1},8,["onClick"]),i(Y,m(A({id:e._id,name:e.name,isCollect:e.isCollect,collectCount:e.collectCount})),null,16)])]),_:1})]),_:1},8,["tableConfig"])])),[[n,R(a).loading]])}}});export{ie as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aA as v,d as _,k as w,m as x,
|
|
1
|
+
import{aA as v,d as _,k as w,m as x,bK as b,r as y,B as C,w as i,b as h,f as T,t as k,ai as B,o as S}from"./index-cHbH7T5D.js";async function N(n,l){return v("/__remote__/api/v1/email/sendCode",{method:"POST",headers:{"Content-Type":"application/json"},data:n})}const V=_({__name:"index",props:{type:{default:"primary"},disabled:{type:Boolean,default:!1},text:{default:"获取验证码"},countdownText:{default:"{n}秒后重试"},duration:{default:60}},emits:["send","finish"],setup(n,{expose:l,emit:r}){const a=n,s=r,e=w(0);let t=null;const u=x(()=>e.value>0?a.countdownText.replace("{n}",e.value.toString()):a.text),d=()=>{e.value=a.duration,t=window.setInterval(()=>{e.value--,e.value<=0&&(clearInterval(t),t=null,s("finish"))},1e3)},c=async o=>{a.disabled||e.value>0||(o.start(),s("send",{end:o.end,startCountdown:d}))};return b(()=>{t&&(clearInterval(t),t=null)}),l({startCountdown:d,getCountdown:()=>e.value}),(o,g)=>{const p=y("el-button");return S(),C(B,null,{default:i(({instance:f,loading:m})=>[h(p,{type:n.type,loading:m,disabled:n.disabled||e.value>0,onClick:I=>c(f),class:"whitespace-nowrap"},{default:i(()=>[T(k(u.value),1)]),_:1},8,["type","loading","disabled","onClick"])]),_:1})}}});export{V as _,N as e};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as G,_ as Z,c as q,b as J}from"./index.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{i as G,_ as Z,c as q,b as J}from"./index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js";import{d as w,r as b,B as k,w as x,b as r,f as D,t as C,c as y,p as z,F as V,N,bL as Q,o as m,v as P,k as $,ah as X,a as _,i as E,aI as T,a7 as ee,a8 as U,a9 as L,bM as O,E as te,K as se,bN as ne,aR as R,M as ae,m as M,n as oe,ao as le,aE as ie,ac as ce,z as re,y as B,x as j,u as h,Z as F,ae as ue,a3 as de,av as pe,a6 as H,Y as me,aN as fe,a5 as K}from"./index-cHbH7T5D.js";import{C as _e,u as ve}from"./index-CPx4gS-Z.js";import{c as W,_ as he,a as xe}from"./index.vue_vue_type_style_index_0_lang-CVT5yNeL.js";import{r as ge,h as ye,p as Ce}from"./index-BfqhDZ1z.js";import{m as we}from"./v1Module-Clll6gmK.js";const Se={key:0,class:"more"},be=w({__name:"index",props:{compDeps:{}},setup(l){return(e,t)=>{const i=b("el-tag");return m(),k(Q,{list:l.compDeps,getKey:a=>a.name,class:"flex gap-1 items-center"},{display:x(({visibleList:a,overflow:u})=>[(m(!0),y(V,null,N(a,d=>(m(),k(i,{key:d.name,type:"info","disable-transitions":!0,size:"small"},{default:x(()=>[D(C(d.name)+" "+C(d.version),1)]),_:2},1024))),128)),u>0?(m(),y("span",Se,"+"+C(u)+" more",1)):z("",!0)]),measure:x(({item:a})=>[r(i,{size:"small"},{default:x(()=>[D(C(a.name)+" "+C(a.version),1)]),_:2},1024)]),_:1},8,["list","getKey"])}}}),$e=P(be,[["__scopeId","data-v-94690362"]]),Te={class:"h-[65vh]"},ke=w({__name:"index",setup(l,{expose:e}){const t=$(!1),i=$(null),a=c=>{t.value=!0,i.value=c},u=()=>{t.value=!1,i.value=null},d=c=>{i.value&&i.value(c)};return e({open:a,close:u}),(c,f)=>(m(),k(X,{modelValue:t.value,"onUpdate:modelValue":f[0]||(f[0]=p=>t.value=p),title:"项目文件夹",width:"50%","show-close":""},{default:x(()=>[_("div",Te,[r(G,{onSelect:d})])]),_:1},8,["modelValue"]))}}),at=w({__name:"index",props:{id:{type:String,default:""},name:{type:String,default:""},version:{type:String,default:""}},emits:["downloadSuccess"],setup(l,{emit:e}){const t=l,i=e,a=E("dialogVueFinder");async function u(c){!c()||await U.confirm("当前选择的版本为:"+t.version+",确认下载吗?","提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm"||a.value?.open(d)}async function d(c){const f=ee.service({lock:!0,text:"组件下载中..."});try{if(await U.confirm(L.CONFIRM.DOWNLOAD(c.path),"提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return;const o=await O({compId:t.id,savePath:c.path,compName:t.name,version:t.version}),{isRepeat:n=!1}=o.data;if(n){if(await U.confirm(L.CONFIRM.COVER(t.name),"提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm"){f.close();return}await O({compId:t.id,savePath:c.path,compName:t.name,isCover:!0,version:t.version})}te.success(L.SUCCESS.DOWNLOAD),i("downloadSuccess"),a.value?.close()}finally{f.close()}}return(c,f)=>{const p=b("el-link");return m(),y(V,null,[r(Z,null,{default:x(({isLogin:o})=>[T(c.$slots,"default",{downloadHandler:u,isLogin:o},()=>[r(p,{type:"primary",link:"",onClick:n=>u(o)},{default:x(()=>[...f[0]||(f[0]=[D(" 下载 ",-1)])]),_:1},8,["onClick"])])]),_:3}),r(ke,{ref:"dialogVueFinder",onDownload:d},null,512)],64)}}}),Ee={class:"size-full",ref:"content"},Ve=w({__name:"index",props:se({text:{type:String,default:""}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(l){ne(p=>({v1153a1d3:f.value}));const e=E("textContainer"),t=E("content"),i=E("singleLine"),{height:a}=R(t),{height:u}=R(i),d=ae(l,"modelValue"),c=l,f=M(()=>!u.value||!a.value?1:Math.floor(a.value/u.value));return oe(async()=>{if(c.text){await le();const p=e.value;if(!p)return;d.value=p.scrollHeight>p.clientHeight}}),(p,o)=>(m(),y("div",Ee,[_("div",{class:"text-container",ref:"textContainer"},C(l.text),513),_("div",{class:"text-single",ref:"singleLine"},C(l.text),513)],512))}}),Ie=P(Ve,[["__scopeId","data-v-8c47e69c"]]),Me={class:"size-full"},De=w({__name:"index",props:{desc:{type:String,default:""}},setup(l){const e=$(!1);return(t,i)=>{const a=b("el-popover");return m(),y("div",Me,[r(a,{disabled:!e.value,content:l.desc,placement:"bottom",width:"300","show-after":700},{reference:x(()=>[r(Ie,{modelValue:e.value,"onUpdate:modelValue":i[0]||(i[0]=u=>e.value=u),text:l.desc,class:"text-[#666] text-[12px]"},null,8,["modelValue","text"])]),_:1},8,["disabled","content"])])}}}),Ne={class:"flex justify-center items-center gap-[5px]"},Fe={class:"text-[12px] text-[#857e7e]"},Ue=w({__name:"index",props:{nickname:{type:String,default:""},avatar:{type:String,default:""},teamUserNickname:{type:String,default:""}},setup(l){return(e,t)=>(m(),y("div",Ne,[_("span",Fe,C(l.teamUserNickname||l.nickname),1),r(ie,{size:15,src:l.avatar},null,8,["src"])]))}}),Le=P(Ue,[["__scopeId","data-v-700c073b"]]),Be={class:"flex items-center gap-2 truncate"},Pe={class:"text-[12px] text-[#857e7e]"},Oe={class:"text-[12px] text-[#333]"},A=w({__name:"index",props:{label:{type:String,default:""},value:{type:[String,Number],default:""}},setup(l){return(e,t)=>(m(),y("div",Be,[_("span",Pe,C(l.label),1),T(e.$slots,"value",{},()=>[_("span",Oe,C(l.value),1)])]))}}),Re={class:"flex justify-end items-center"},Ae={class:"text-xs"},ze={class:"text-left flex-1 flex flex-col w-full overflow-hidden my-1 gap-[5px]"},je={class:"flex justify-between"},He={class:"font-medium"},Ke={class:"desc-content flex-1 overflow-hidden relative"},We={class:"overflow-hidden w-full flex items-center justify-between"},Ye={class:"flex gap-[5px]"},Ge=w({__name:"Item",setup(l){const e=ce(),t=W(e._id)(),i=re(),a=M(()=>{const o=t.versionToFileAccessPath[e.version]??[],n=new Map(o.map(({path:s,signedUrl:v})=>[s,v]));return e.previewConfigs.filter(s=>s.miniPath?.length).slice(0,3).map(s=>{const v=ge(s.miniPath.at(-1)??"");return{finalEntryUrl:n.get(v)??""}})}),u=M(()=>ye(e.dep)),d=M(()=>{const o=a.value.length===1?"none":"";return{previews:a.value,dep:e.dep,signedUrls:t.versionToFileAccessPath[e.version]??[],depToFile:t.depEntryNameToFile[e.version]??{},indicatorPosition:o}});async function c(){const{version:o}=e;let n=null,s=null;t.versionToFileAccessPath[o]||(n=await p()),t.depEntryNameToFile[o]||(s=await f()),s&&t.setDepEntryNameToFile(o,s),n&&t.setVersionToFileAccessPath(o,n)}async function f(){const{dep:o}=e,n=Ce(o,i.deps).map(g=>g.name),s=await we({deps:n}),{entryNameToFile:v={}}=s.data;return v}async function p(){const{objectId:o,version:n,files:s}=e,v={objectId:o,version:n,files:s.map(I=>I.path)},g=await de(v),{signedUrls:S}=g.data;return S}return B(()=>e.version,async()=>{await c()}),j(async()=>{const o=await p();t.setVersionToFileAccessPath(e.version,o)}),(o,n)=>{const s=b("el-color-picker");return m(),y(V,null,[r(he,{class:"flex flex-col gap-1 h-[280px] overflow-hidden",bg:h(e).bgColor},{default:x(({bg:v,updateColor:g})=>[_("div",{class:"border border-[#e4e7ed] rounded-sm flex-1",style:ue({backgroundColor:v})},[r(_e,F(d.value,{autoplay:""}),null,16)],4),_("div",Re,[T(o.$slots,"compItemToolBar",{attrs:h(e)}),_("span",Ae,[n[0]||(n[0]=D("背景板:",-1)),r(s,{modelValue:v,onChange:g,clearable:""},null,8,["modelValue","onChange"])])])]),_:3},8,["bg"]),_("div",ze,[_("div",je,[_("h4",He,C(h(e).name),1),_("div",null,[r(Le,F(h(e).authorId,{teamUserNickname:h(e).teamUserNickname}),null,16,["teamUserNickname"])])]),_("div",Ke,[r(De,{desc:h(e).desc},null,8,["desc"])]),r($e,{compDeps:u.value},null,8,["compDeps"])]),T(o.$slots,"compItemFooter",{attrs:h(e)},()=>[_("div",We,[_("div",Ye,[r(A,{label:"下载",value:Math.max(h(e).totalDownloadCount,0)},null,8,["value"]),h(e).collectCount!==void 0?(m(),k(A,{key:0,label:"收藏",value:Math.max(h(e).collectCount,0)},null,8,["value"])):z("",!0)]),T(o.$slots,"compItemFooterOperate",{attrs:h(e)})])])],64)}}}),Ze={class:"size-full overflow-x-hidden",ref:"compList"},ot=w({__name:"index",setup(l){const e=pe(),t=E("compList");ve(t);const i=H(K.COMP_LIST_STORE);return(a,u)=>{const d=b("el-card");return m(),y("div",Ze,[r(me,{isEmpty:h(i).isEmpty,class:"size-full"},{default:x(()=>[r(xe,{itemMinWidth:310},{default:x(()=>[(m(!0),y(V,null,N(h(i).list,c=>(m(),k(d,{key:c._id,"body-style":"padding: 5px"},{default:x(()=>[r(Ge,F({ref_for:!0},c),fe({_:2},[N(h(e),(f,p)=>({name:p,fn:x(o=>[T(a.$slots,p,F({ref_for:!0},o))])}))]),1040)]),_:2},1024))),128))]),_:3})]),_:3},8,["isEmpty"])],512)}}}),qe={class:"w-[100px]"},lt=w({__name:"index",props:{id:{type:String,default:""},version:{type:String,default:""}},setup(l){const e=l,t=W(e.id)(),i=H(K.COMP_LIST_STORE),a=$(""),u=$(!1),d=$([]);async function c(){if(u.value)return;const n=await q({compId:e.id});u.value=!0,d.value=n.data.map(s=>({value:s.version,label:s.version}))}function f(n){a.value=n}function p(){d.value=[{value:e.version,label:e.version}],a.value=e.version}async function o(n){const s=t.detail[n];if(s){const{totalDownloadCount:v,collectCount:g,isCollect:S,...I}=s;i.updateCompListItemById(e.id,{...I,_id:e.id});return}await J({compId:e.id,version:n}).then(v=>{const g=v.data,{totalDownloadCount:S,collectCount:I,isCollect:Je,...Y}=g;i.updateCompListItemById(e.id,{...Y,_id:e.id}),t.setDetail(n,g)})}return B(()=>a.value,(n,s)=>{n===s||!s||o(n)}),B(()=>e.version,(n,s)=>{n===s||!s||(a.value=n)}),j(()=>{p()}),(n,s)=>{const v=b("el-option"),g=b("el-select");return m(),y("div",qe,[r(g,{modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=S=>a.value=S),onChange:f,onVisibleChange:c},{default:x(()=>[(m(!0),y(V,null,N(d.value,S=>(m(),k(v,{key:S.value,label:S.label,value:S.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])}}});export{$e as C,Ie as T,Le as U,at as _,ot as a,lt as b,A as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as L,b as B}from"./index.vue_vue_type_style_index_0_lang-
|
|
1
|
+
import{_ as L,b as B}from"./index.vue_vue_type_style_index_0_lang-CVT5yNeL.js";import{d as b,ac as M,m as S,aH as U,r as g,B as m,w as u,a as n,b as v,Z as C,u as y,c as h,F as V,N as F,aI as T,f as z,o as t,ae as N,p as x,v as O,k as w,ab as P,t as D,aJ as A,aK as R,aL as j,G as K,x as Y,D as H,O as G,Y as J,a4 as k,a5 as $,i as Z,aM as q,aN as Q}from"./index-cHbH7T5D.js";import{_ as W}from"./index.vue_vue_type_style_index_0_lang-BVuL5ED4.js";import{u as E}from"./useTeamHeaders-22mJVwWy.js";import{c as X}from"./index-CPx4gS-Z.js";import{a as ee,_ as se,b as oe}from"./index.vue_vue_type_script_setup_true_lang-C2jCrlom.js";import{k as te}from"./index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js";const ae={class:"flex-1"},ne={class:"flex justify-end"},ie={class:"text-xs whitespace-nowrap"},le=b({__name:"index",props:{previews:{},dep:{},signedUrls:{},bgColor:{},depToFile:{}},setup(o){const i=o,d=M(),l=S(()=>({dep:i.dep,signedUrls:i.signedUrls,depToFile:i.depToFile,panelType:U.FULL}));return(e,r)=>{const f=g("el-carousel-item"),_=g("el-carousel"),c=g("el-color-picker");return t(),m(L,{class:"size-full flex flex-col gap-1",bg:o.bgColor},{default:u(({bg:a,updateColor:s})=>[n("div",ae,[v(_,C({class:"size-full"},y(d),{trigger:"click",loop:!1}),{default:u(()=>[(t(!0),h(V,null,F(o.previews,(p,I)=>(t(),m(f,{key:I,class:"size-full"},{default:u(()=>[n("div",{class:"flex-1 border border-[#e4e7ed] overflow-hidden rounded-md size-full",style:N({backgroundColor:a})},[p.finalEntryUrl?(t(),m(B,C({key:0,finalEntryUrl:p.finalEntryUrl},{ref_for:!0},l.value),null,16,["finalEntryUrl"])):x("",!0)],4)]),_:2},1024))),128))]),_:2},1040)]),n("div",ne,[T(e.$slots,"compToolBar",{},void 0,!0),n("span",ie,[r[0]||(r[0]=z("背景板:",-1)),v(c,{modelValue:a,onChange:s},null,8,["modelValue","onChange"])])])]),_:3},8,["bg"])}}}),$e=O(le,[["__scopeId","data-v-d954acdf"]]),re={class:"flex items-center justify-between px-3 py-2 bg-gray-50 border-b border-gray-200 select-none"},ce={class:"text-sm font-medium text-gray-800"},de={class:"flex gap-1.5"},me={key:0,class:"flex-1 p-2 overflow-auto"},Se=b({__name:"index",props:{title:{type:String,default:""},actions:{type:Array,default:()=>["close","maximize","minimize"]}},emits:["close","maximize","minimize"],setup(o,{emit:i}){const d=o,l=i,e=w(!1),r=w(!1);function f(){l("close")}function _(){e.value=!e.value,l("maximize",e.value)}function c(a){return d.actions.includes(a)}return(a,s)=>{const p=g("el-button");return t(),h("div",{class:P(["rounded-sm flex flex-col w-full h-full bg-white border border-gray-200 overflow-hidden",{"fixed inset-0 z-50":e.value}])},[n("div",re,[n("div",ce,D(o.title),1),n("div",de,[c("close")?(t(),m(p,{key:0,type:"primary",icon:y(A),circle:"",onClick:f},null,8,["icon"])):x("",!0),c("maximize")?(t(),m(p,{key:1,type:"primary",icon:e.value?y(R):y(j),circle:"",onClick:_},null,8,["icon"])):x("",!0)])]),r.value?x("",!0):(t(),h("div",me,[T(a.$slots,"default",{isMaximized:e.value})]))],2)}}}),ue={class:"min-h-[400px]"},_e={class:"flex-1"},fe={class:"flex-1 flex justify-end items-center gap-2"},pe=b({__name:"index",setup(o){const i=K(),{compId:d}=i.params,{headers:l}=E(),e=X(i.path)();k($.COMP_LIST_STORE,e);const r=new Map;k($.CALLBACKS,r);const f=async()=>{if(e.setLoading(!0),!d)return;const c=await te({compId:d},{headers:l}),{rows:a}=c.data||{};await e.renderList(a),e.setLoading(!1)};function _(c){const{_id:a,totalDownloadCount:s=0}=c;e.updateCompListItemById(a,{totalDownloadCount:s+1})}return Y(()=>{f()}),H(()=>{e.$reset()}),(c,a)=>(t(),h("div",ue,[v(J,{isEmpty:y(e).isEmpty,loading:y(e).loading},{default:u(()=>[v(ee,null,{compItemToolBar:u(({attrs:s})=>[n("div",_e,[s._id?(t(),m(oe,G(C({key:0},{id:s._id,version:s.version})),null,16)):x("",!0)])]),compItemFooterOperate:u(({attrs:s})=>[n("div",fe,[v(se,C({id:s._id,name:s.name,version:s.version},{onDownloadSuccess:p=>_(s)}),null,16,["onDownloadSuccess"])])]),_:1})]),_:1},8,["isEmpty","loading"])]))}}),ve={class:"mt-[10px] overflow-hidden",ref:"similarComp"},ye={class:"mt-[10px] border-[#ccc] rounded-sm p-[10px] bg-[#f2f3f5]"},Te=b({__name:"index",props:{mdSrc:{type:String,default:""},scrollContainer:{type:String,default:""},stickyTopDistance:{type:Number,default:45},showSimilarComp:{type:Boolean,default:!0}},setup(o){const{teamId:i}=E(),d=S(()=>i?"团队内相似组件":"相似组件"),l=w(!1),e=Z("similarComp");return q(e,([r])=>{l.value||(l.value=r?.isIntersecting||!1)}),(r,f)=>{const _=g("el-divider");return t(),m(W,{showToc:!0,class:"flex-1",src:o.mdSrc,scrollContainer:o.scrollContainer,stickyTopDistance:o.stickyTopDistance},Q({_:2},[o.showSimilarComp?{name:"footer",fn:u(()=>[n("div",ve,[v(_,{"content-position":"center"},{default:u(()=>[z(D(d.value),1)]),_:1}),n("div",ye,[l.value?(t(),m(pe,{key:0})):x("",!0)])],512)]),key:"0"}:void 0]),1032,["src","scrollContainer","stickyTopDistance"])}}});export{$e as C,Te as _,Se as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aA as t,d as l,h as _,aI as u,
|
|
1
|
+
import{aA as t,d as l,h as _,aI as u,bS as f,r as h,c as y,b as C,Z as v,H as T,bT as S,E as p,o as g}from"./index-cHbH7T5D.js";async function O(e,o){return t("/__remote__/api/v1/comp/checkCompExistById",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function b(e,o){return t("/__remote__/api/v1/comp/collect",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function w(e,o){return t("/__remote__/api/v1/comp/collectedComps",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function x(e,o){return t("/__remote__/api/v1/comp/compDetail",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function E(e,o){return t("/__remote__/api/v1/comp/compHash",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function M(e,o){return t("/__remote__/api/v1/comp/comps",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function k(e,o){return t("/__remote__/api/v1/comp/deleteMyComp",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function R(e,o){return t("/__remote__/api/v1/comp/myComps",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}async function B(e,o){return t("/__remote__/api/v1/comp/similarComps",{method:"POST",headers:{"Content-Type":"application/json"},data:e,...o||{}})}async function U(e,o){return t("/__remote__/api/v1/comp/updateBasicInfo",{method:"POST",headers:{"Content-Type":"application/json"},data:e,...o||{}})}async function A(e,o){return t("/__remote__/api/v1/comp/upgradeRecords",{method:"POST",headers:{"Content-Type":"application/json"},data:e,...o||{}})}async function D(e,o){return t("/__remote__/api/v1/comp/versions",{method:"POST",headers:{"Content-Type":"application/json"},data:e})}const F=l({__name:"index",setup(e){const o=_();function r(){const a=o.isRealUserLogin();return a||o.logoutDialog(),a}return(a,c)=>u(a.$slots,"default",{isLogin:r})}}),$={class:"size-full"},I=l({__name:"index",emits:["select"],setup(e,{emit:o}){const r=o,c="/api/v1/vuefinder",m={selectionMode:"single",driver:new f({baseURL:c,url:{list:"/list"}}),features:{search:!1,upload:!1,delete:!1,rename:!1,preview:!1,edit:!1,archive:!1,unarchive:!1,newfile:!1,newfolder:!1,fullscreen:!1,download:!1,language:!0,move:!1,copy:!1,history:!1,theme:!1,pinned:!1},contextMenuItems:[...S,{id:"select-folder",title:()=>"选择",action:(i,n)=>{if(n.length>1){p.error("不支持多选");return}const{type:s="dir"}=n[0];if(s!=="dir"){p.error("只能选择文件夹");return}r("select",n[0])},show:(i,n)=>{const{target:s,items:d}=n;return d.length>1?!1:s?.type==="dir"}}],config:{initialPath:T.dirname},locale:"zhCN"};return(i,n)=>{const s=h("VueFinder");return g(),y("div",$,[C(s,v({id:"vuefinder"},m),null,16)])}}});export{F as _,A as a,x as b,D as c,M as d,k as e,R as f,w as g,b as h,I as i,O as j,B as k,E as l,U as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as u,r as _,c as E,b as C,ab as S,w as p,o as f,v as L,a6 as m,B as O,a9 as i,a8 as B,E as T,aa as x,a5 as d}from"./index-
|
|
1
|
+
import{d as u,r as _,c as E,b as C,ab as S,w as p,o as f,v as L,a6 as m,B as O,a9 as i,a8 as B,E as T,aa as x,a5 as d}from"./index-cHbH7T5D.js";import{_ as M,h as y}from"./index.vue_vue_type_script_setup_true_lang-DaO9_LHy.js";const I={class:"collect"},g=u({__name:"index",props:{isCollect:{type:Boolean,default:!1}},emits:["collect"],setup(c,{emit:l}){const s=c,e=l;function n(){e("collect",!s.isCollect)}return(a,t)=>{const o=_("StarFilled"),r=_("el-icon");return f(),E("div",I,[C(r,{class:S(["collect-icon",{"is-collect":c.isCollect}]),onClick:n},{default:p(()=>[C(o)]),_:1},8,["class"])])}}}),h=L(g,[["__scopeId","data-v-25eb2692"]]),N=u({__name:"index",props:{id:{type:String,default:""},name:{type:String,default:""},isCollect:{type:Boolean,default:!1},collectCount:{type:Number,default:0}},setup(c){const l=m(d.COMP_LIST_STORE),s=m(d.CALLBACKS),e=c;async function n(a){if(a()&&e.isCollect!==void 0){if(e.isCollect){const t=i.CONFIRM.UNCOLLECT(e.name);if(await B.confirm(t,"取消收藏",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).catch(()=>{})!=="confirm")return}y({compId:e.id,isCollect:!e.isCollect}).then(()=>{T.success(e.isCollect?i.SUCCESS.UNCOLLECT:i.SUCCESS.COLLECT);const t={...e,isCollect:!e.isCollect};e.isCollect?(l.updateCompListItemById(e.id,{...t,collectCount:e.collectCount-1}),s.get(x.AFTER_COMP_CANCEL_COLLECT)?.(e.id)):l.updateCompListItemById(e.id,{...t,collectCount:e.collectCount+1})})}}return(a,t)=>(f(),O(M,null,{default:p(({isLogin:o})=>[C(h,{isCollect:c.isCollect,onCollect:r=>n(o)},null,8,["isCollect","onCollect"])]),_:1}))}});export{N as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as a,b as u}from"./index-
|
|
1
|
+
import{g as a,b as u}from"./index-BfqhDZ1z.js";import{d as w,i as g,k as y,C as S,x as M,D as b,c as T,a as D,o as R}from"./index-cHbH7T5D.js";const _={class:"size-full"},P={ref:"canvas",class:"size-full bg-[#333436]"},k=w({__name:"index",setup(A){const d=g("canvas"),o=y(!1);let n=null;class x{rangeR;r;rSpeed;cvs;ctx;x;y;xSpeed;ySpeed;lastMoveTime;fillStyle;maxTimeDiff=100;constructor({cvs:t,ctx:e}){this.rangeR=[3,7],this.r=a(this.rangeR[0],this.rangeR[1]),this.rSpeed=a(-1,1),this.cvs=t,this.ctx=e,this.x=a(0+this.r,this.cvs.width-this.r),this.y=a(0+this.r,this.cvs.height-this.r),this.xSpeed=a(-10,10),this.ySpeed=a(-10,10),this.lastMoveTime=null,this.fillStyle=u()}setLastMoveTime(t){this.lastMoveTime=t}draw(){if(this.lastMoveTime){const i=Date.now()-this.lastMoveTime,s=Math.min(i,this.maxTimeDiff)/1e3;let h=this.x+s*this.xSpeed,c=this.y+s*this.ySpeed,l=this.r+s*this.rSpeed;l<=this.rangeR[0]?(l=this.rangeR[0],this.rSpeed=Math.abs(this.rSpeed)):l>=this.rangeR[1]&&(l=this.rangeR[1],this.rSpeed=-Math.abs(this.rSpeed)),h-this.r<0?(h=this.r,this.xSpeed=Math.abs(this.xSpeed)):h+this.r>this.cvs.width&&(h=this.cvs.width-this.r,this.xSpeed=-Math.abs(this.xSpeed)),c-this.r<0?(c=this.r,this.ySpeed=Math.abs(this.ySpeed)):c+this.r>this.cvs.height&&(c=this.cvs.height-this.r,this.ySpeed=-Math.abs(this.ySpeed)),this.x=h,this.y=c,this.r=l}const t=Math.max(0,this.r);this.ctx.beginPath(),this.ctx.arc(this.x,this.y,t,0,2*Math.PI),this.ctx.fillStyle=this.fillStyle,this.ctx.fill(),this.lastMoveTime=Date.now()}}class p{points;maxDis;cvs;ctx;constructor({pointNumber:t=30,maxDis:e=100,cvs:i,ctx:s}){this.points=new Array(t).fill(0).map(()=>new x({cvs:i,ctx:s})),this.maxDis=e,this.cvs=i,this.ctx=s}resetPointsTime(){const t=Date.now();this.points.forEach(e=>{e.setLastMoveTime(t)})}draw(){if(o.value){if(document.hidden){setTimeout(()=>this.draw(),100);return}requestAnimationFrame(()=>this.draw()),this.ctx.clearRect(0,0,this.cvs.width,this.cvs.height);for(const[t,e]of this.points.entries()){e.draw();for(const i of this.points.slice(t+1)){const s=Math.sqrt((e.x-i.x)**2+(e.y-i.y)**2);isNaN(s)||s>this.maxDis||(this.ctx.beginPath(),this.ctx.moveTo(e.x,e.y),this.ctx.lineTo(i.x,i.y),this.ctx.strokeStyle=`rgba(200,200,200,${Math.max(0,Math.min(1,1-s/this.maxDis))})`,this.ctx.stroke(),this.ctx.closePath())}}}}}function v(){if(!d.value)return;console.log("渲染动画"),o.value=!0;const r=1920,t=110*window.innerWidth/r,e=80*window.innerWidth/r,i=d.value,s=i.getContext("2d");if(!s)return;const h=window.devicePixelRatio||1;i.width=window.innerWidth*h,i.height=window.innerHeight*h,s.scale(h,h),n=new p({pointNumber:Math.floor(t),maxDis:Math.floor(e),cvs:i,ctx:s}),n.draw()}const m=S(v,200);function f(){document.hidden?o.value=!1:d.value&&n&&(o.value=!0,n.resetPointsTime(),n.draw())}return window.addEventListener("resize",m),document.addEventListener("visibilitychange",f),M(()=>{m()}),b(()=>{o.value=!1,window.removeEventListener("resize",m),document.removeEventListener("visibilitychange",f),n=null}),(r,t)=>(R(),T("div",_,[D("canvas",P,null,512)]))}});export{k as _};
|