Files
workspace/code/fms/fms-vue/.tmp-build/assets/file-demo-37UoCvak.js
T
2026-09-05 17:25:35 +08:00

1 line
28 KiB
JavaScript

import{$ as e,A as t,G as n,H as r,Ht as i,Lt as a,M as o,Q as s,T as c,U as l,V as u,_ as d,a as f,b as p,d as m,gt as h,it as g,lt as _,p as v,t as y,ut as b,v as x,w as S,wt as C,x as w,y as T,zt as E}from"./_plugin-vue_export-helper-Ktpf6lZe.js";import{B as D,D as O,E as ee,G as k,K as A,R as j,T as M,b as N,c as P,g as F,h as te,i as ne,l as re,n as ie,p as ae,r as oe,s as se,t as I}from"./ui-BhP3ZSBa.js";import{n as ce,t as le}from"./upload-BQ-x-HCK.js";import{i as L,n as R,r as ue,t as de}from"./folder-open-xxjo8zBP.js";import{t as z}from"./inbox-c3GPUSJZ.js";import{t as fe}from"./layout-grid-4RbS718w.js";import{t as pe}from"./list-CLWjpOzg.js";import{t as B}from"./rotate-ccw-AQ4L8JGg.js";import{t as me}from"./trash-2-CumKnXxQ.js";import{a as V,c as H,n as U,o as he}from"./api-BHfsXASe.js";g(),o();var W={class:`fc-panel`},ge={class:`fc-panel__tree`},_e={key:0,class:`fc-panel__loading`},ve=y({__name:`FileCategoryPanel`,props:{treeData:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},selectedKey:{type:String,default:``},expandedKeys:{type:Array,default:()=>[]}},emits:[`select`,`update:expandedKeys`],setup(e,{emit:t}){let n=e,r=t,i=d(()=>n.selectedKey?[n.selectedKey]:[]);function a(e,t){if(t?.node?.isFmsRoot){r(`select`,``);return}r(`select`,e.length?String(e[0]):``)}function o(e){r(`update:expandedKeys`,e)}return(t,n)=>(l(),w(`aside`,W,[x(`div`,ge,[c(h(ie),{"tree-data":e.treeData,"selected-keys":i.value,"expanded-keys":e.expandedKeys,"block-node":!0,onSelect:a,"onUpdate:expandedKeys":o},null,8,[`tree-data`,`selected-keys`,`expanded-keys`]),e.loading?(l(),w(`div`,_e,[c(h(re))])):p(``,!0)])]))}},[[`__scopeId`,`data-v-4cc6122a`]]),G=null,K=null,q=3e5;async function J(){return G||(G=(await H(`/file/config`)).data.storageType,G)}async function ye({files:e,father:t,moduleId:n,cateId:r}){return G||await J(),G===`aliyun-oss`?Y({files:e,father:t,moduleId:n,cateId:r}):be({files:e,father:t,moduleId:n,cateId:r})}async function be({files:e,father:t,moduleId:n,cateId:r}){let i=new FormData;for(let t of e)i.append(`files`,t);return i.append(`father`,t),i.append(`moduleId`,n),r&&i.append(`cateId`,r),(await H(`/file/upload`,i,{headers:{"Content-Type":void 0}})).data}async function Y({files:e,father:t,moduleId:n,cateId:r}){let{accessid:i,policy:a,signature:o,dir:s,host:c}=await xe(),l=[];for(let u of e){let e=await V(),d=String(e.data),f=Te(u.name),p=crypto.randomUUID().replace(/-/g,``)+(f?`.`+f:``),m=await Ce(c,{key:s+p,OSSAccessKeyId:i,policy:a,Signature:o,file:u,filename:p}),h={subid:d,father:t,mx_moduleid:n,mx_cate_id:r||``,mx_filename:u.name,mx_filesize:String(u.size),mx_fileext:f,mx_mapfilename:m};await H(`/file/save-record`,h),l.push(h)}return l}async function xe(){return K&&!Se(K)||(K={...(await H(`/file/upload-credential`)).data,fetchedAt:Date.now()}),K}function Se(e){return e.expire?Date.now()+q>Number(e.expire)*1e3:e.Expiration?Date.now()+q>new Date(e.Expiration).getTime():Date.now()-e.fetchedAt>33e5}function Ce(e,t){let n=new FormData;return n.append(`key`,t.key),n.append(`OSSAccessKeyId`,t.OSSAccessKeyId),n.append(`policy`,t.policy),n.append(`Signature`,t.Signature),n.append(`file`,t.file,t.filename),new Promise((r,i)=>{let a=new XMLHttpRequest;a.open(`POST`,e),a.addEventListener(`load`,()=>{a.status===200||a.status===204?r(e+`/`+t.key):i(Error(`OSS 上传失败: `+a.status))}),a.addEventListener(`error`,()=>i(Error(`OSS 上传异常`))),a.send(n)})}function X(e){return e.mx_mapfilename}async function we(e){return H(`/file/delete`,{subid:e})}function Te(e){return!e||!e.includes(`.`)?``:e.substring(e.lastIndexOf(`.`)+1).toLowerCase()}var Ee={pdf:`#f5222d`,doc:`#1677ff`,docx:`#1677ff`,txt:`#8c8c8c`,md:`#8c8c8c`,xls:`#52c41a`,xlsx:`#52c41a`,csv:`#52c41a`,ppt:`#fa541c`,pptx:`#fa541c`,jpg:`#722ed1`,jpeg:`#722ed1`,png:`#722ed1`,gif:`#722ed1`,bmp:`#722ed1`,webp:`#722ed1`,svg:`#722ed1`,zip:`#fa8c16`,rar:`#fa8c16`,"7z":`#fa8c16`,mp3:`#13c2c2`,wav:`#13c2c2`,mp4:`#13c2c2`,mov:`#13c2c2`},De=`#8c8c8c`;function Oe(e){let t=(e||``).lastIndexOf(`.`);return t>=0?e.substring(t+1).toLowerCase():``}function ke(e){return Ee[Oe(e)]||De}function Ae(e){return[`jpg`,`jpeg`,`png`,`gif`,`bmp`,`webp`,`svg`].includes(Oe(e))}function je(e){let t=Number(e||0);return t<1024?t+` B`:t<1048576?(t/1024).toFixed(1)+` KB`:t<1073741824?(t/1048576).toFixed(1)+` MB`:(t/1073741824).toFixed(2)+` GB`}o(),C(),g(),f();var Me=[`title`],Z={class:`fcard__thumb`},Q=[`src`],Ne={class:`fcard__info`},Pe={class:`fcard__name`},Fe=[`title`],Ie={class:`fcard__meta`},Le=y({__name:`FileCard`,props:{file:{type:Object,required:!0},selected:{type:Boolean,default:!1}},emits:[`select`,`preview`,`download`,`delete`],setup(n,{emit:r}){let o=n,s=r,u=d(()=>!!o.file?.pending),f=d(()=>Ae(o.file?.mx_filename||``)),g=d(()=>f.value&&(o.file?.blobUrl||X(o.file))||``),_=d(()=>Oe(o.file?.mx_filename||``)),v=d(()=>_.value.toUpperCase()||`?`),y=d(()=>ke(o.file?.mx_filename||``)),b=d(()=>[{key:`preview`,label:`预览`,icon:t(j,{size:13})}]);function C(e){s(`select`,o.file,e)}function ee(){u.value||s(`preview`,o.file)}function k(){u.value||s(`download`,o.file)}function A(){s(`delete`,o.file)}function P(e){e?.key===`preview`&&!u.value&&s(`preview`,o.file)}return(t,r)=>(l(),w(`div`,{class:a([`fcard`,{"fcard--selected":n.selected,"fcard--pending":u.value}]),title:n.file.mx_filename,onClick:ee},[x(`div`,Z,[f.value&&g.value?(l(),w(`img`,{key:0,src:g.value,alt:``},null,8,Q)):(l(),w(`div`,{key:1,class:`fcard__type`,style:E({"--c":y.value})},i(v.value),5)),x(`span`,{class:`fcard__check`,onClick:r[0]||=m(()=>{},[`stop`])},[c(h(M),{"model-value":n.selected,onChange:C},null,8,[`model-value`])])]),x(`div`,Ne,[x(`div`,Pe,[x(`span`,{class:`fcard__title`,title:n.file.mx_filename},i(n.file.mx_filename),9,Fe),u.value?(l(),T(h(ne),{key:0,variant:`outline`,class:`fcard__tag`},{default:e(()=>[...r[2]||=[S(`待上传`,-1)]]),_:1})):p(``,!0)]),x(`div`,Ie,i(h(je)(n.file.mx_filesize)),1)]),x(`div`,{class:`fcard__footer`,onClick:r[1]||=m(()=>{},[`stop`])},[c(h(O),{type:`ghost`,disabled:u.value,onClick:k},{default:e(()=>[c(h(ce))]),_:1},8,[`disabled`]),r[3]||=x(`span`,{class:`fcard__divider`},null,-1),c(h(O),{type:`ghost`,class:`fcard__btn-danger`,onClick:A},{default:e(()=>[c(h(me))]),_:1}),r[4]||=x(`span`,{class:`fcard__divider`},null,-1),c(h(N),{items:b.value,disabled:u.value,onClick:P},{default:e(()=>[c(h(O),{type:`ghost`,disabled:u.value},{default:e(()=>[c(h(D))]),_:1},8,[`disabled`])]),_:1},8,[`items`,`disabled`])])],10,Me))}},[[`__scopeId`,`data-v-551bbb3c`]]);o(),g(),C();var Re={class:`fl-panel`},ze={class:`fl-header`},Be={key:0},Ve={key:0,class:`fl-grid`},He={key:1,class:`fl-list`},Ue={class:`fl-table`},We={class:`fl-table__check`},Ge={class:`fl-table__check`},Ke=[`title`,`onClick`],qe={class:`is-right`},Je={class:`fl-size`},Ye={class:`is-center`},Xe={class:`is-center`},Ze={class:`fl-actions`},Qe={key:0,class:`fl-drop-mask`},$e={class:`fl-drop-hint`},et={key:0,class:`fl-footer`},tt={class:`fl-footer__bar`},nt={class:`fl-footer__btns`},rt={key:1,class:`fl-pagination`},it={class:`fl-confirm-content`},at=y({__name:`FileListPanel`,props:{moduleCode:{type:[String,Number],default:``},moduleId:{type:String,default:``},father:{type:[String,Number],required:!0},cateId:{type:String,default:``},readonly:{type:Boolean,default:!1}},emits:[`preview`,`uploaded`,`deleted`],setup(t,{expose:o,emit:f}){let m=t,g=f,_=b([]),y=b(!1),C=b(0),D=b(1),k=b(20),A=b(!1),j=b(new Set),N=b(`grid`),P=b([]),F=b([]),ie=b(null),se=b(null),L=b(!1),R=0,z=d(()=>[...P.value.map((e,t)=>({pending:!0,subid:`_pending_${t}`,mx_filename:e.name,mx_filesize:e.size,mx_fileext:Oe(e.name),blobUrl:F.value[t]||``,rawFile:e})),..._.value]),B=d(()=>z.value.length>0),V=d(()=>P.value.length>0);d(()=>_.value);let H=d(()=>_.value.length),U=d(()=>j.value.size),W=d(()=>B.value&&j.value.size===z.value.length),ge=d(()=>U.value>0&&!W.value);function _e(){let e=m.father,t=`[father] = N'${String(e).replaceAll(`'`,`''`)}'`;return m.moduleId&&(t+=` AND [mx_moduleid] = N'${String(m.moduleId).replaceAll(`'`,`''`)}'`),m.cateId&&(t+=` AND [mx_cate_id] = N'${String(m.cateId).replaceAll(`'`,`''`)}'`),t}function ve(e){return{...e,subid:String(e.subid),father:String(e.father),mx_moduleid:e.mx_moduleid?String(e.mx_moduleid):``,mx_cate_id:e.mx_cate_id?String(e.mx_cate_id):``,mx_filesize:Number(e.mx_filesize||0)}}async function G(e=1){D.value=e,y.value=!0;try{let e=await he({viewName:`bf_files`,orderBy:`mx_xh ASC, subid DESC`,searchCondition:_e(),pageNo:D.value,pageSize:k.value});_.value=(e.data?.rows||[]).map(ve),C.value=e.data?.total||0}catch{_.value=[],C.value=0}finally{y.value=!1}}function K(){W.value?j.value=new Set:j.value=new Set(z.value.map(e=>e.subid))}function q(e,t){let n=e.subid,r=new Set(j.value);t?r.add(n):r.delete(n),j.value=r}function J(){ie.value?.click()}function be(e){let t=e.target?.files;t?.length&&(Y(t),e.target.value=``)}function Y(e){for(let t of e)P.value.push(t),Ae(t.name)?F.value.push(URL.createObjectURL(t)):F.value.push(``)}function xe(e){e.preventDefault(),e.currentTarget===e.target&&(R++,L.value=!0)}function Se(e){e.preventDefault(),e.dataTransfer.dropEffect=`copy`}function Ce(e){e.currentTarget===e.target&&(R--,R<=0&&(R=0,L.value=!1))}function Te(e){e.preventDefault(),R=0,L.value=!1;let t=e.dataTransfer;t?.files?.length&&Y(t.files)}function Ee(e){let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length&&Y(n)}function De(){for(let e of F.value)e&&URL.revokeObjectURL(e);F.value=[]}async function Me(){if(P.value.length){if(!m.moduleId){I.warning(`未解析到模块 ID,无法上传`);return}A.value=!0;try{await ye({files:[...P.value],father:String(m.father),moduleId:m.moduleId,cateId:m.cateId||void 0}),I.success(`成功上传 ${P.value.length} 个文件`),De(),P.value=[],g(`uploaded`),await G(1)}catch(e){e?.toasted||I.error(`上传失败:`+(e?.message||e))}finally{A.value=!1}}}let Z=b(null),Q=b(!1);function Ne({title:e,content:t=``,okText:n=`删除`,onOk:r}){Z.value={title:e,content:t,okText:n,onOk:r}}async function Pe(){let e=Z.value;if(e){Q.value=!0;try{await e.onOk(),Z.value=null}finally{Q.value=!1}}}async function Fe(){if(!j.value.size)return;let e=[...j.value];Ne({title:`确定删除选中的 ${e.length} 个文件?`,onOk:async()=>{let t=e.filter(e=>String(e).startsWith(`_pending_`)).map(e=>Number(String(e).replace(`_pending_`,``))).toSorted((e,t)=>t-e),n=e.filter(e=>!String(e).startsWith(`_pending_`));try{for(let e of t)P.value[e]&&(F.value[e]&&URL.revokeObjectURL(F.value[e]),P.value.splice(e,1),F.value.splice(e,1));for(let e of n)await we(e);I.success(`已删除 ${e.length} 个文件`),j.value=new Set,g(`deleted`),await G(D.value)}catch(e){e?.toasted||I.error(`删除失败:`+(e?.message||e))}}})}async function Ie(e){if(e.pending){let t=P.value.findIndex(t=>t===e.rawFile);t>=0&&(F.value[t]&&URL.revokeObjectURL(F.value[t]),P.value.splice(t,1),F.value.splice(t,1));return}Ne({title:`确定删除「${e.mx_filename}」?`,onOk:async()=>{try{await we(e.subid),j.value.delete(e.subid),g(`deleted`),await G(D.value)}catch(e){e?.toasted||I.error(`删除失败:`+(e?.message||e))}}})}function at(){let e=_.value.filter(e=>j.value.has(e.subid));for(let t of e){let e=X(t);if(e){let n=document.createElement(`a`);n.href=e,n.download=t.mx_filename,n.click()}}}function ot(e){let t=X(e);if(t){let n=document.createElement(`a`);n.href=t,n.download=e.mx_filename,n.click()}}function st(e){g(`preview`,e)}return u(()=>{G(),document.addEventListener(`paste`,Ee)}),r(()=>{document.removeEventListener(`paste`,Ee)}),s(()=>[m.father,m.moduleId,m.cateId],()=>{j.value=new Set,De(),P.value=[],G(1)}),o({files:_,triggerSelect:J}),(r,o)=>(l(),w(`div`,Re,[x(`div`,ze,[c(h(M),{"model-value":W.value,indeterminate:ge.value,disabled:!B.value,onChange:K},{default:e(()=>[...o[6]||=[S(` 全选 `,-1)]]),_:1},8,[`model-value`,`indeterminate`,`disabled`]),c(h(O),{type:`outline`,disabled:!U.value,onClick:at},{default:e(()=>[c(h(ce)),o[7]||=S(` 下载 `,-1)]),_:1},8,[`disabled`]),c(h(O),{type:`outline`,class:`fl-header__danger`,disabled:!U.value,onClick:Fe},{default:e(()=>[c(h(me)),o[8]||=S(` 删除 `,-1)]),_:1},8,[`disabled`]),o[9]||=x(`div`,{class:`fl-header__spacer`},null,-1),c(h(ee),{class:`fl-header__modes`},{default:e(()=>[c(h(O),{type:`ghost`,class:a({"is-active":N.value===`grid`}),"aria-pressed":N.value===`grid`,onClick:o[0]||=e=>N.value=`grid`},{default:e(()=>[c(h(fe))]),_:1},8,[`class`,`aria-pressed`]),c(h(O),{type:`ghost`,class:a({"is-active":N.value===`list`}),"aria-pressed":N.value===`list`,onClick:o[1]||=e=>N.value=`list`},{default:e(()=>[c(h(pe))]),_:1},8,[`class`,`aria-pressed`])]),_:1})]),x(`div`,{ref_key:`mainRef`,ref:se,class:a([`fl-main`,{"fl-main--dragover":L.value}]),onDragenter:xe,onDragover:Se,onDragleave:Ce,onDrop:Te},[c(h(re),{spinning:y.value,class:`fl-spin`},{default:e(()=>[B.value?(l(),w(`div`,Be,[N.value===`grid`?(l(),w(`div`,Ve,[(l(!0),w(v,null,n(z.value,e=>(l(),T(Le,{key:e.subid,file:e,selected:j.value.has(e.subid),onSelect:q,onPreview:st,onDownload:ot,onDelete:Ie},null,8,[`file`,`selected`]))),128))])):(l(),w(`div`,He,[x(`table`,Ue,[x(`thead`,null,[x(`tr`,null,[x(`th`,We,[c(h(M),{"model-value":W.value,indeterminate:ge.value,disabled:!B.value,onChange:K},null,8,[`model-value`,`indeterminate`,`disabled`])]),o[10]||=x(`th`,null,`文件名`,-1),o[11]||=x(`th`,{class:`is-right`},`大小`,-1),o[12]||=x(`th`,{class:`is-center`},`类型`,-1),o[13]||=x(`th`,{class:`is-center`},`操作`,-1)])]),x(`tbody`,null,[(l(!0),w(v,null,n(z.value,n=>(l(),w(`tr`,{key:n.subid},[x(`td`,Ge,[c(h(M),{"model-value":j.value.has(n.subid),onChange:e=>q(n,e)},null,8,[`model-value`,`onChange`])]),x(`td`,null,[x(`a`,{class:a([`fl-filename`,{"is-pending":n.pending}]),title:n.mx_filename,onClick:e=>!n.pending&&st(n)},i(n.mx_filename),11,Ke)]),x(`td`,qe,[x(`span`,Je,i(h(je)(n.mx_filesize)),1)]),x(`td`,Ye,[n.pending?(l(),T(h(ne),{key:0,variant:`outline`,class:`fl-ext-tag fl-ext-tag--pending`},{default:e(()=>[...o[14]||=[S(`待上传`,-1)]]),_:1})):(l(),w(`span`,{key:1,class:`fl-ext-chip`,style:E({"--c":h(ke)(n.mx_filename)})},i((n.mx_fileext||`?`).toUpperCase()),5))]),x(`td`,Xe,[x(`div`,Ze,[c(h(oe),{content:`下载`},{default:e(()=>[c(h(O),{type:`ghost`,class:`fl-icon-btn`,disabled:!!n.pending,onClick:e=>ot(n)},{default:e(()=>[c(h(ce))]),_:1},8,[`disabled`,`onClick`])]),_:2},1024),t.readonly?p(``,!0):(l(),T(h(oe),{key:0,content:`删除`},{default:e(()=>[c(h(O),{type:`ghost`,class:`fl-icon-btn fl-icon-btn--danger`,onClick:e=>Ie(n)},{default:e(()=>[c(h(me))]),_:1},8,[`onClick`])]),_:2},1024))])])]))),128))])])]))])):y.value?p(``,!0):(l(),w(`div`,{key:1,class:a([`fl-empty fl-empty--fill`,{"fl-empty--clickable":!t.readonly}]),onClick:o[2]||=e=>!t.readonly&&J()},[c(h(ue),{size:40,"stroke-width":1}),o[15]||=x(`span`,null,`暂无相关文件`,-1)],2))]),_:1},8,[`spinning`]),L.value?(l(),w(`div`,Qe,[x(`div`,$e,[c(h(le),{size:28}),o[16]||=x(`span`,null,`释放文件到此处`,-1)])])):p(``,!0)],34),t.readonly?p(``,!0):(l(),w(`div`,et,[x(`div`,tt,[x(`span`,{class:a([`fl-footer__count`,{"is-pending":V.value}])},[V.value?(l(),w(v,{key:0},[S(`待上传 `+i(P.value.length)+` 个`,1)],64)):(l(),w(v,{key:1},[S(`共 `+i(H.value)+` 个文件`,1)],64))],2),x(`div`,nt,[x(`input`,{ref_key:`uploadInputRef`,ref:ie,type:`file`,class:`fl-footer__input`,multiple:``,onChange:be},null,544),c(h(O),{type:`outline`,onClick:J},{default:e(()=>[c(h(de)),o[17]||=S(` 选择 `,-1)]),_:1}),c(h(O),{type:`primary`,disabled:!V.value,loading:A.value,onClick:Me},{default:e(()=>[c(h(le)),o[18]||=S(` 上传 `,-1)]),_:1},8,[`disabled`,`loading`])])])])),C.value>k.value?(l(),w(`div`,rt,[c(h(ae),{current:D.value,"page-size":k.value,total:C.value,"show-size-changer":``,"page-size-options":[`10`,`20`,`50`,`100`],onChange:G,onShowSizeChange:o[3]||=(e,t)=>{k.value=t,G(1)}},null,8,[`current`,`page-size`,`total`])])):p(``,!0),c(h(te),{open:!!Z.value,title:Z.value?.title||`确认操作`,width:416,centered:``,closable:!1,fullscreen:!1,resizable:!1,"mask-closable":!1,"confirm-loading":Q.value,onCancel:o[5]||=e=>Z.value=null},{footer:e(()=>[c(h(O),{type:`outline`,disabled:Q.value,onClick:o[4]||=e=>Z.value=null},{default:e(()=>[...o[19]||=[S(` 取消 `,-1)]]),_:1},8,[`disabled`]),c(h(O),{type:`danger`,loading:Q.value,onClick:Pe},{default:e(()=>[S(i(Z.value?.okText||`删除`),1)]),_:1},8,[`loading`])]),default:e(()=>[x(`div`,it,i(Z.value?.content||`确定要执行此操作吗?`),1)]),_:1},8,[`open`,`title`,`confirm-loading`])]))}},[[`__scopeId`,`data-v-69636098`]]);g(),o(),C();var ot={class:`fp-panel`},st={class:`fp-toolbar`},ct={class:`fp-toolbar__nav`},lt={key:0,class:`fp-toolbar__counter`},ut=[`title`],dt={class:`fp-content`},ft={key:0,class:`fp-content__image`},pt=[`src`,`alt`],mt={key:1,class:`fp-content__generic`},ht={class:`fp-content__info`},gt={class:`fp-content__name`},_t={class:`fp-content__meta`},vt={key:0},yt={key:1,class:`fp-empty`},bt=y({__name:`FilePreviewPanel`,props:{file:{type:Object,default:null},fileList:{type:Array,default:()=>[]}},emits:[`prev`,`next`],setup(t,{emit:n}){let r=t,a=n,o=d(()=>!r.file||!r.fileList.length?-1:r.fileList.findIndex(e=>e.subid===r.file.subid)),s=d(()=>r.fileList.length),u=d(()=>o.value>0),f=d(()=>o.value>=0&&o.value<s.value-1),m=d(()=>r.file?X(r.file):``),g=d(()=>{let e=(r.file?.mx_fileext||``).toLowerCase();return[`jpg`,`jpeg`,`png`,`gif`,`bmp`,`webp`,`svg`].includes(e)}),_=d(()=>ke(r.file?.mx_filename||``)),y=d(()=>(r.file?.mx_fileext||`?`).toUpperCase());return(n,r)=>(l(),w(`aside`,ot,[x(`div`,st,[x(`div`,ct,[c(h(O),{type:`ghost`,class:`fp-nav-btn`,disabled:!u.value,title:`上一个`,onClick:r[0]||=e=>a(`prev`)},{default:e(()=>[c(h(A))]),_:1},8,[`disabled`]),o.value>=0?(l(),w(`span`,lt,i(o.value+1)+` / `+i(s.value),1)):p(``,!0),c(h(O),{type:`ghost`,class:`fp-nav-btn`,disabled:!f.value,title:`下一个`,onClick:r[1]||=e=>a(`next`)},{default:e(()=>[c(h(k))]),_:1},8,[`disabled`])]),x(`span`,{class:`fp-toolbar__name`,title:t.file?.mx_filename},i(t.file?.mx_filename||``),9,ut)]),x(`div`,dt,[t.file?(l(),w(v,{key:0},[g.value&&m.value?(l(),w(`div`,ft,[x(`img`,{src:m.value,alt:t.file.mx_filename},null,8,pt)])):(l(),w(`div`,mt,[x(`div`,{class:`fp-content__chip`,style:E({"--c":_.value})},i(y.value),5),x(`div`,ht,[x(`div`,gt,i(t.file.mx_filename),1),x(`div`,_t,[x(`span`,null,i(h(je)(t.file.mx_filesize)),1),t.file.mx_fileext?(l(),w(`span`,vt,`· `+i(t.file.mx_fileext),1)):p(``,!0)])])]))],64)):(l(),w(`div`,yt,[c(h(ue),{size:48,"stroke-width":1}),r[2]||=x(`div`,{class:`fp-empty__text`},`选择文件查看预览`,-1)]))])]))}},[[`__scopeId`,`data-v-306c6c52`]]);g(),o();function xt(){let e=b([]),t=b(!1),n=b(null),r=b(``);async function i(){t.value=!0,n.value=null;try{let t=await U(`bf_files_cateid`,`b_canuse = 1`,`b_xh ASC, b_id ASC`);e.value=(t.data||[]).map(e=>({...e,b_id:String(e.b_id)}))}catch(t){n.value=t?.message||String(t),e.value=[]}finally{t.value=!1}}let a=d(()=>[{key:`__fms_tree_root__`,title:`全部分类`,isFmsRoot:!0,children:e.value.map(e=>({key:String(e.b_id),title:e.b_name||String(e.b_id)||``,b_id:String(e.b_id),isLeaf:!0}))}]);function o(t){let n=String(t||``);return e.value.find(e=>String(e.b_id)===n)||null}function s(e){r.value=String(e||``)}return{categories:e,loading:t,error:n,selectedKey:r,treeData:a,loadCategories:i,findCategory:o,selectCategory:s}}g(),o(),C();var St={class:`ff-container`},Ct={key:0,class:`ff-status`},wt={key:1,class:`ff-status ff-status--error`},Tt={class:`ff-center`},Et=y({__name:`FmsFile`,props:{moduleCode:{type:[String,Number],required:!0},father:{type:[String,Number],required:!0},showTree:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},initialCateId:{type:String,default:``}},emits:[`uploaded`,`deleted`,`selected`],setup(t,{expose:n,emit:r}){let a=t,o=r,f=b(``),m=b(!1),g=b(``);async function _(){let e=a.moduleCode;if(!e){f.value=``;return}m.value=!0,g.value=``;try{let t=await U(`s_module`,`b_code = N'${String(e).replaceAll(`'`,`''`)}' AND b_canuse = 1`,``,[`b_id`,`b_code`,`b_name`]);t.data?.length?f.value=String(t.data[0].b_id):(f.value=``,g.value=`未找到模块 "${e}"`)}catch(e){g.value=e?.message||`模块解析失败`,f.value=``}finally{m.value=!1}}s(()=>a.moduleCode,()=>_());let{treeData:v,loading:y,selectedKey:S,loadCategories:C,selectCategory:E}=xt(),D=d(()=>{let e=S.value;return!e||e===`__fms_tree_root__`?``:e}),O=b([`__fms_tree_root__`]);function ee(e){E(e)}let k=b(null),A=b(null),j=d(()=>k.value?.files||[]);function M(e){A.value=e,o(`selected`,e)}function N(){let e=j.value,t=e.findIndex(e=>e.subid===A.value?.subid);t>0&&(A.value=e[t-1],o(`selected`,A.value))}function F(){let e=j.value,t=e.findIndex(e=>e.subid===A.value?.subid);t>=0&&t<e.length-1&&(A.value=e[t+1],o(`selected`,A.value))}function te(){o(`uploaded`)}function ne(){A.value=null,o(`deleted`)}return u(()=>{_(),C(),a.initialCateId&&(E(a.initialCateId),O.value=[`__fms_tree_root__`,String(a.initialCateId)])}),d(()=>!m.value&&!g.value),n({moduleId:f,refreshCategories:C}),(n,r)=>(l(),w(`div`,St,[m.value?(l(),w(`div`,Ct,[c(h(re)),r[1]||=x(`span`,{class:`ff-status__text`},`正在解析模块...`,-1)])):g.value?(l(),w(`div`,wt,i(g.value),1)):(l(),T(h(se),{key:2,class:`ff-splitter`},{default:e(()=>[t.showTree?(l(),T(h(P),{key:0,"default-size":220,min:160,max:320},{default:e(()=>[c(ve,{"tree-data":h(v),loading:h(y),"selected-key":h(S),"expanded-keys":O.value,onSelect:ee,"onUpdate:expandedKeys":r[0]||=e=>O.value=e},null,8,[`tree-data`,`loading`,`selected-key`,`expanded-keys`])]),_:1})):p(``,!0),c(h(P),{"default-size":500,min:280},{default:e(()=>[x(`div`,Tt,[c(at,{ref_key:`fileListRef`,ref:k,"module-code":t.moduleCode,"module-id":f.value,father:t.father,"cate-id":D.value,readonly:t.readonly,onPreview:M,onUploaded:te,onDeleted:ne},null,8,[`module-code`,`module-id`,`father`,`cate-id`,`readonly`])])]),_:1}),c(h(P),{min:440},{default:e(()=>[c(bt,{file:A.value,"file-list":j.value,onPrev:N,onNext:F},null,8,[`file`,`file-list`])]),_:1})]),_:1}))]))}},[[`__scopeId`,`data-v-c5ee8b20`]]);g();var $=_({open:!1,moduleCode:``,father:``,showTree:!0,readonly:!1,initialCateId:``,key:0,onUploaded:null,onDeleted:null,onSelected:null}),Dt=0;function Ot(){function e(e){Dt++,$.key=Dt,$.moduleCode=e.moduleCode||``,$.father=String(e.father??``),$.showTree=e.showTree!==!1,$.readonly=e.readonly||!1,$.initialCateId=e.initialCateId||``,$.onUploaded=e.onUploaded||null,$.onDeleted=e.onDeleted||null,$.onSelected=e.onSelected||null,$.open=!0}function t(){$.open=!1}return{open:e,close:t,state:$}}o(),g();var kt={__name:`FmsFileModal`,props:{open:{type:Boolean,default:!1},moduleCode:{type:[String,Number],required:!0},father:{type:[String,Number],required:!0},showTree:{type:Boolean,default:!0},readonly:{type:Boolean,default:!1},initialCateId:{type:String,default:``}},emits:[`update:open`,`uploaded`,`deleted`,`selected`],setup(t,{emit:n}){let r=n;function i(){r(`update:open`,!1)}let{state:a}=Ot();return(n,o)=>(l(),w(v,null,[c(h(te),{open:t.open,title:`附件管理`,width:`80%`,footer:!1,onCancel:i},{default:e(()=>[(l(),T(Et,{key:`${t.moduleCode}-${t.father}`,"module-code":t.moduleCode,father:t.father,"show-tree":t.showTree,readonly:t.readonly,"initial-cate-id":t.initialCateId,onUploaded:o[0]||=e=>r(`uploaded`),onDeleted:o[1]||=e=>r(`deleted`),onSelected:o[2]||=e=>r(`selected`,e)},null,8,[`module-code`,`father`,`show-tree`,`readonly`,`initial-cate-id`]))]),_:1},8,[`open`]),c(h(te),{open:h(a).open,title:`附件管理`,width:`80%`,footer:!1,onCancel:o[6]||=e=>h(a).open=!1},{default:e(()=>[(l(),T(Et,{key:h(a).key,"module-code":h(a).moduleCode,father:h(a).father,"show-tree":h(a).showTree,readonly:h(a).readonly,"initial-cate-id":h(a).initialCateId,onUploaded:o[3]||=e=>h(a).onUploaded?.(),onDeleted:o[4]||=e=>h(a).onDeleted?.(),onSelected:o[5]||=e=>h(a).onSelected?.(e)},null,8,[`module-code`,`father`,`show-tree`,`readonly`,`initial-cate-id`]))]),_:1},8,[`open`])],64))}};o(),g(),C();var At={class:`file-demo`},jt={class:`file-demo__grid`},Mt={class:`file-demo__side`},Nt={class:`file-demo__card`},Pt={class:`file-demo__field`},Ft={class:`file-demo__field`},It={class:`file-demo__row`},Lt={class:`file-demo__card`},Rt={class:`file-demo__btns`},zt={class:`file-demo__card file-demo__card--grow`},Bt={class:`file-demo__card-head`},Vt={key:0,class:`file-demo__events`},Ht={class:`file-demo__event-time`},Ut={class:`file-demo__event-text`},Wt={key:1,class:`file-demo__empty`},Gt={class:`file-demo__card file-demo__main`},Kt={class:`file-demo__card-head`},qt={class:`file-demo__badge`},Jt={class:`file-demo__embedded`},Yt=y(Object.assign({name:`FileDemo`},{__name:`index`,setup(t){let r=b(`b_port`),o=b(`1001`),s=b(!0),u=b(0);function d(){u.value++}let f=b(!1),p=Ot();function m(){p.open({moduleCode:r.value,father:o.value,showTree:s.value,onUploaded:()=>_(`uploaded`,`命令式弹窗:文件已上传`),onDeleted:()=>_(`deleted`,`命令式弹窗:文件已删除`),onSelected:e=>_(`selected`,`命令式弹窗选中:${e.mx_filename}`)})}let g=b([]);function _(e,t){g.value.unshift({type:e,payload:t,time:new Date().toLocaleTimeString()}),g.value.length>20&&g.value.pop()}function y(){g.value=[]}return(t,p)=>(l(),w(`div`,At,[p[24]||=x(`header`,{class:`file-demo__head`},[x(`h1`,{class:`file-demo__title`},`FmsFile 附件管理组件演示`),x(`p`,{class:`file-demo__sub`},` 支持上传(本地 / OSS 自动匹配)、拖拽 / 粘贴、分类筛选、网格 / 列表视图、预览与删除。下方参数可切换后点「刷新」重新加载。 `)],-1),x(`div`,jt,[x(`div`,Mt,[x(`section`,Nt,[p[15]||=x(`h2`,{class:`file-demo__card-title`},`参数配置`,-1),x(`div`,Pt,[p[11]||=x(`label`,{class:`file-demo__label`},`模块编码 moduleCode`,-1),c(h(F),{modelValue:r.value,"onUpdate:modelValue":p[0]||=e=>r.value=e,placeholder:`如 b_port`},null,8,[`modelValue`])]),x(`div`,Ft,[p[12]||=x(`label`,{class:`file-demo__label`},`业务 ID father`,-1),c(h(F),{modelValue:o.value,"onUpdate:modelValue":p[1]||=e=>o.value=e,placeholder:`如 1001`},null,8,[`modelValue`])]),x(`div`,It,[c(h(M),{modelValue:s.value,"onUpdate:modelValue":p[2]||=e=>s.value=e},{default:e(()=>[...p[13]||=[S(`显示分类树`,-1)]]),_:1},8,[`modelValue`]),c(h(O),{type:`outline`,onClick:d},{default:e(()=>[c(h(B)),p[14]||=S(` 刷新内嵌 `,-1)]),_:1})])]),x(`section`,Lt,[p[18]||=x(`h2`,{class:`file-demo__card-title`},`弹窗用法`,-1),x(`div`,Rt,[c(h(O),{type:`primary`,onClick:p[3]||=e=>f.value=!0},{default:e(()=>[c(h(R)),p[16]||=S(` 声明式弹窗 `,-1)]),_:1}),c(h(O),{type:`outline`,onClick:m},{default:e(()=>[c(h(L)),p[17]||=S(` 命令式弹窗 `,-1)]),_:1})]),p[19]||=x(`p`,{class:`file-demo__tip`},[S(` 命令式:`),x(`code`,null,`useFileModal().open({ moduleCode, father })`),S(`,支持 onUploaded / onDeleted / onSelected 回调。 `)],-1)]),x(`section`,zt,[x(`div`,Bt,[p[21]||=x(`h2`,{class:`file-demo__card-title`},`事件日志`,-1),c(h(O),{type:`ghost`,onClick:y},{default:e(()=>[...p[20]||=[S(`清空`,-1)]]),_:1})]),g.value.length?(l(),w(`ul`,Vt,[(l(!0),w(v,null,n(g.value,(e,t)=>(l(),w(`li`,{key:t,class:`file-demo__event`},[x(`span`,Ht,i(e.time),1),x(`span`,{class:a([`file-demo__event-tag`,`is-${e.type}`])},i(e.type),3),x(`span`,Ut,i(e.payload),1)]))),128))])):(l(),w(`div`,Wt,[c(h(z),{size:28,"stroke-width":1}),p[22]||=x(`span`,null,`暂无事件,去上传 / 删除 / 选中文件试试`,-1)]))])]),x(`section`,Gt,[x(`div`,Kt,[p[23]||=x(`h2`,{class:`file-demo__card-title`},`内嵌用法`,-1),x(`span`,qt,`moduleCode=`+i(r.value)+` · father=`+i(o.value),1)]),x(`div`,Jt,[(l(),T(Et,{key:u.value,"module-code":r.value,father:o.value,"show-tree":s.value,onUploaded:p[4]||=e=>_(`uploaded`,`内嵌:文件已上传`),onDeleted:p[5]||=e=>_(`deleted`,`内嵌:文件已删除`),onSelected:p[6]||=e=>_(`selected`,`内嵌选中:${e.mx_filename}`)},null,8,[`module-code`,`father`,`show-tree`]))])])]),c(kt,{open:f.value,"onUpdate:open":p[7]||=e=>f.value=e,"module-code":r.value,father:o.value,"show-tree":s.value,onUploaded:p[8]||=e=>_(`uploaded`,`声明式弹窗:文件已上传`),onDeleted:p[9]||=e=>_(`deleted`,`声明式弹窗:文件已删除`),onSelected:p[10]||=e=>_(`selected`,`声明式弹窗选中:${e.mx_filename}`)},null,8,[`open`,`module-code`,`father`,`show-tree`])]))}}),[[`__scopeId`,`data-v-73191dc6`]]);export{Yt as default};