按 demo/ 的写法把交付包改成「角色由目录决定」:iw/ 拷内网机、ow/ 拷外网机, 各自含镜像 tar、SQL、配置与 install.sh,install.sh 不再收 iw/ow 参数。 前端不再打进镜像,改为静态包放在 <侧>/web/ 只读挂进 nginx:1.27-alpine, 现场临时改页面直接替换文件 + restart web 即可。数据仍全部挂宿主机, 子目录命名与 deploy/offline 一致(pgdata/redis/mq/upload/logs/gate), 默认根改为包内 ./volumes,放数据盘只改 .env 的 SFILE_DATA_ROOT。 后端镜像 sfile-app:1.0.1 含传输优化那一批(实测组包 11.4×、解包 9.9×)。 出包脚本 deployment/scripts/build-package.sh 负责 jar→镜像→前端双包→sql→tar→VERSION。
1 line
3.2 KiB
JavaScript
1 line
3.2 KiB
JavaScript
import{t as e}from"./useQuery-Hj7E43Q9.js";import{n as t,t as n}from"./file-category-filter-BmGVvDiP.js";import{t as r}from"./file-DlDBClxy.js";import{t as i}from"./folder-input-lYe4JQ9T.js";import{t as a}from"./folder-DDlXKK_x.js";import{F as o,P as s,Qt as c,Vn as l,ct as u,pt as d,qn as f,tn as p,xt as m,zn as h}from"./index-CjPx3lfT.js";import{t as g}from"./directory-breadcrumb-BIvEu5Qr.js";import{n as _,r as v,t as y}from"./data-table-B1a8BMaf.js";import"./dialog-ITi__DUr.js";var b=f(l(),1);const x=(t,n,r)=>{let[i,a]=(0,b.useState)([]),[o,s]=(0,b.useState)(0),c=e({queryKey:[`shareFileList`,o],queryFn:()=>m({...n,...r,parentId:o}).then(e=>e.data)}),l=e=>{s(e.id),a(t=>[...t,e])},u=t(l);return{parentId:o,handleChangeParentId:l,openDirectorys:i,changeOpenDirectorys:e=>{s(e==null?void 0:e.id),a(t=>{let n=t.findIndex(t=>t.id===(e==null?void 0:e.id));return n>-1?[...t.slice(0,n+1)]:[]})},table:_({data:(c==null?void 0:c.data)||[],columns:u,getCoreRowModel:v()}),query:c,reset:()=>{a([]),s(0)}}};var S=f(h());function C(e,t){return[{accessorKey:`fileName`,header:`文件名`,cell:({row:n})=>{var o;return(0,S.jsxs)(`div`,{className:`flex items-center gap-1 break-all cursor-pointer hover:underline hover:text-primary group`,onClick:()=>{var r;(n==null||(r=n.original)==null?void 0:r.fileType)===u.DIRECTORY?e(n==null?void 0:n.original):t(n==null?void 0:n.original)},children:[(n==null||(o=n.original)==null?void 0:o.fileType)===u.FILE?(0,S.jsx)(S.Fragment,{children:(0,S.jsx)(r,{size:18,className:`text-primary`})}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{size:18,className:`text-amber-500 group-hover:hidden`}),(0,S.jsx)(i,{size:18,className:`text-amber-500 group-hover:block hidden`})]}),(0,S.jsx)(`span`,{children:n.getValue(`fileName`)})]})}},{accessorKey:`createTime`,header:`创建日期`,cell:({row:e})=>(0,S.jsx)(`div`,{children:e.getValue(`createTime`)})},{accessorKey:`fileSize`,header:`文件大小`,cell:({row:e})=>(0,S.jsx)(`div`,{children:p(e.getValue(`fileSize`))})},{accessorKey:`fileCategory`,header:`文件种类`,cell:({row:e})=>(0,S.jsx)(`div`,{children:e.original.fileType===u.FILE?o(e.getValue(`fileCategory`)):`-`})},{id:`actions`,enableHiding:!1,header:`操作`,cell:({row:e})=>{let t=e.original;return(0,S.jsx)(`div`,{className:`space-x-2`,children:t.fileType===u.FILE&&(0,S.jsx)(c,{variant:`outline`,size:`sm`,onClick:()=>{d({code:t.fileCode})},children:`下载`})})}}]}function w(){let e=s.useSearch(),[r,i]=(0,b.useState)(null),[a,o]=(0,b.useState)(!1),c=e=>{i(e),o(!0)},[l,u]=(0,b.useState)(`all`),{table:d,query:f,openDirectorys:p,changeOpenDirectorys:m,reset:h}=x(e=>C(e,c),e,(0,b.useMemo)(()=>({fileCategory:l===`all`?void 0:l}),[l]));return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(t,{open:a,setOpen:o,data:r}),(0,S.jsx)(`div`,{className:`p-4 min-h-screen`,children:(0,S.jsxs)(`div`,{className:`rounded-xl bg-white/50 backdrop-blur-lg min-h-full space-y-4 p-4`,children:[(0,S.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,S.jsx)(n,{fileCategory:l,setFileCategory:u,reset:h})}),(0,S.jsxs)(`div`,{className:`p-4 rounded-lg border bg-white space-y-2`,children:[(0,S.jsx)(g,{directorys:p,onChangeDirectorys:m}),(0,S.jsx)(`div`,{className:`relative overflow-hidden`,children:(0,S.jsx)(y,{table:d,query:f})})]})]})})]})}export{w as component,C as useColumns}; |