Files
senmesh-zc/deployment/ow/web/assets/remove-file-dialog-DzvgYKQv.js
KodouWZF d39b3b035d feat(部署): 新增 deployment/ 内外网两套按侧部署包
按 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。
2026-11-04 21:44:56 +08:00

1 line
5.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{t as e}from"./useQuery-Hj7E43Q9.js";import{t}from"./file-DlDBClxy.js";import{t as n}from"./folder-input-lYe4JQ9T.js";import{t as r}from"./folder-DDlXKK_x.js";import{B as i,Qt as a,R as o,Tt as s,Vn as c,Zt as l,ct as u,fn as d,ht as f,ln as p,qn as m,rn as h,st as g,wt as _,yn as v,z as y,zn as b}from"./index-CjPx3lfT.js";import{t as x}from"./directory-breadcrumb-BIvEu5Qr.js";import{n as S,r as C,t as w}from"./data-table-B1a8BMaf.js";import{t as T}from"./pagination-DP8LewWY.js";import{a as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./dialog-ITi__DUr.js";var N=d(`move-right`,[[`path`,{d:`M18 8L22 12L18 16`,key:`1r0oui`}],[`path`,{d:`M2 12H22`,key:`1m8cig`}]]);const P=e=>{let{mutateAsync:t,isPending:n}=v({mutationFn:_,...e||{}});return{move:e=>{p.promise(t(e),{loading:`移动中`,success:`移动成功`})},moveIsPending:n}};var F=m(c(),1),I=m(b(),1);function L(e){return[{accessorKey:`fileName`,header:`目录名`,size:200,cell:({row:t})=>(0,I.jsxs)(`div`,{className:h(`w-full flex items-center gap-1 break-all`,`cursor-pointer hover:underline hover:text-primary group`),onClick:()=>{e(t==null?void 0:t.original)},children:[(0,I.jsx)(r,{size:18,className:`text-amber-500 group-hover:hidden`}),(0,I.jsx)(n,{size:18,className:`text-amber-500 group-hover:block hidden`}),(0,I.jsx)(`span`,{children:t.getValue(`fileName`)})]})}]}function R({open:t,setOpen:n,data:s,refetch:c,params:d}){var p,m;let[h,g]=(0,F.useState)({}),[_,v]=(0,F.useState)([]),[b,D]=(0,F.useState)(0),[R,z]=(0,F.useState)({pageIndex:0,pageSize:10}),B=e({queryKey:[`moveFiles`,R,b,d],queryFn:()=>f({...d,parentId:b||0,pageSize:R.pageSize,pageNo:R.pageIndex+1,fileType:u.DIRECTORY}).then(e=>e.data),enabled:t}),V=S({data:(0,F.useMemo)(()=>{var e;return(B==null||(e=B.data)==null||(e=e.entityList)==null?void 0:e.filter(e=>e.id!==(s==null?void 0:s.id)))||[]},[B,s]),columns:L(e=>{D(e.id),V.setPageIndex(0),v(t=>[...t,e]),V.resetRowSelection()}),getCoreRowModel:C(),manualPagination:!1,rowCount:(B==null||(p=B.data)==null?void 0:p.totalCount)||0,pageCount:(B==null||(m=B.data)==null?void 0:m.pageCount)||0,onPaginationChange:z,autoResetPageIndex:!1,onRowSelectionChange:g,state:{pagination:R,rowSelection:h}}),H=e=>{D(e==null?void 0:e.id),V.setPageIndex(0),v(t=>{let n=t.findIndex(t=>t.id===(e==null?void 0:e.id));return n>-1?[...t.slice(0,n+1)]:[]}),V.resetRowSelection()},U=()=>{D(0),V.setPageIndex(0),v([]),V.resetRowSelection()},{move:W,moveIsPending:G}=P({onSuccess:()=>{c==null||c(),n(!1)}}),K=()=>{W({...s,parentId:b})};(0,F.useEffect)(()=>{t&&U()},[t]);let q=(0,F.useMemo)(()=>_==null?void 0:_[(_==null?void 0:_.length)-1],[_]);return(0,I.jsx)(M,{open:t,onOpenChange:n,children:(0,I.jsxs)(A,{className:`w-[680px]`,children:[(0,I.jsx)(k,{children:(0,I.jsx)(j,{children:(s==null?void 0:s.fileType)===u.DIRECTORY?`移动目录`:`移动文件`})}),(0,I.jsxs)(`div`,{className:`overflow-hidden space-y-2`,children:[(0,I.jsx)(x,{directorys:_,onChangeDirectorys:H}),(0,I.jsxs)(`div`,{className:`max-h-[400px] overflow-y-auto relative border rounded-lg`,children:[(0,I.jsx)(w,{table:V,query:B}),(0,I.jsx)(T,{table:V,simple:!0,className:`p-2 justify-end sticky bottom-0 left-0 right-0 z-10 bg-white`})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-sm overflow-hidden`,children:[(0,I.jsx)(`span`,{className:`flex-1 overflow-hidden text-primary clamp-1 truncate p-2 rounded-lg bg-gray-100`,children:s==null?void 0:s.fileName}),(0,I.jsx)(N,{size:16,className:`flex-none`}),(0,I.jsxs)(`span`,{className:`flex-1 overflow-hidden text-amber-500 clamp-1 truncate inline-flex items-center gap-1 p-2 rounded-lg bg-gray-100`,children:[(0,I.jsx)(r,{size:16,className:`flex-none `}),(q==null?void 0:q.fileName)||`根目录`]})]}),(0,I.jsxs)(o,{className:`!bg-amber-50 !border-amber-200`,children:[(0,I.jsxs)(i,{children:[`您确定要将`,(s==null?void 0:s.fileType)===u.DIRECTORY?`目录`:`文件`,`移动到该目录下吗?`]}),(0,I.jsx)(y,{children:`如果是目录,则目录下的所有文件和子目录都会被移动`})]}),(0,I.jsxs)(E,{children:[(0,I.jsx)(O,{asChild:!0,children:(0,I.jsx)(a,{variant:`outline`,children:`取消`})}),(0,I.jsxs)(a,{type:`submit`,disabled:G,onClick:K,children:[G&&(0,I.jsx)(l,{}),`确定`]})]})]})})}const z=e=>{let{mutateAsync:t,isPending:n}=v({mutationFn:s,...e||{}});return{remove:e=>{p.promise(t(e),{loading:`删除中`,success:`删除成功`})},removeIsPending:n}};function B({open:e,setOpen:n,data:i,refetch:o}){let{remove:s,removeIsPending:c}=z({onSuccess(){o==null||o(),n(!1)}});return(0,I.jsx)(M,{open:e,onOpenChange:n,children:(0,I.jsxs)(A,{className:`w-[400px]`,children:[(0,I.jsxs)(k,{children:[(0,I.jsxs)(j,{children:[`您确定要删除该`,(i==null?void 0:i.fileType)===u.FILE?`文件`:`目录`,`?`]}),(i==null?void 0:i.fileType)===u.FILE?(0,I.jsx)(D,{children:`删除后文件将被放入到回收站中,可从回收站中恢复`}):(0,I.jsx)(D,{children:`目录下的文件也会一并被删除,删除的目录将会放入到回收站中,可从回收站中恢复`}),(0,I.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 text-sm p-2 rounded-md bg-gray-50`,children:[(i==null?void 0:i.fileType)===u.FILE?(0,I.jsx)(t,{size:16,className:`text-primary flex-none`}):(0,I.jsx)(r,{size:16,className:`text-amber-500 flex-none`}),(0,I.jsx)(`span`,{className:`break-all`,children:i==null?void 0:i.fileName})]})]}),(0,I.jsxs)(E,{children:[(0,I.jsx)(O,{asChild:!0,children:(0,I.jsx)(a,{variant:`outline`,children:`取消`})}),(0,I.jsxs)(a,{type:`submit`,variant:`destructive`,disabled:c,onClick:()=>{s({id:i==null?void 0:i.id,oldStatus:i==null?void 0:i.fileStatus,newStatus:g.INVALID})},children:[c&&(0,I.jsx)(l,{}),`确定`]})]})]})})}export{R as n,B as t};