From cb2e954f1cda70c2246a9481c169fe90a72aa150 Mon Sep 17 00:00:00 2001
From: Rao <1227431568@qq.com>
Date: Tue, 4 Mar 2025 09:12:41 +0800
Subject: [PATCH 01/15] rht
---
apps/web/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/web/index.html b/apps/web/index.html
index 6199b0c..2305b2c 100755
--- a/apps/web/index.html
+++ b/apps/web/index.html
@@ -12,7 +12,7 @@
VITE_APP_VERSION: "$VITE_APP_VERSION",
};
-
{canEdit && (
From a5e6768c85094ba5eb12b7b133ddca23845127ee Mon Sep 17 00:00:00 2001
From: longdayi <13477510+longdayilongdayi@user.noreply.gitee.com>
Date: Tue, 4 Mar 2025 19:58:10 +0800
Subject: [PATCH 03/15] 02272356
---
apps/web/public/placeholder.webp | Bin
.../main/layout/BasePost/BasePostLayout.tsx | 0
.../main/layout/BasePost/SearchModeRadio.tsx | 0
.../components/MyDutyPathContainer.tsx | 0
.../components/MyDutyListContainer.tsx | 0
.../components/MyLearningListContainer.tsx | 0
.../components/MyPathListContainer.tsx | 0
.../src/app/main/path/components/DeptInfo.tsx | 0
.../src/app/main/path/components/TermInfo.tsx | 0
.../search/components/SearchContainer.tsx | 0
.../src/components/common/editor/constant.ts | 0
.../course/detail/JoinLearingButton.tsx | 0
.../src/components/models/post/PostCard.tsx | 0
.../src/components/models/post/PostSelect.tsx | 12 +
.../models/post/SubPost/CourseCard.tsx | 0
.../models/post/SubPost/PathCard.tsx | 0
packages/ui/package.json | 38 ---
.../ui/src/components/mindmap/MindMap.tsx | 90 -------
.../ui/src/components/mindmap/MindMapEdge.tsx | 16 --
.../ui/src/components/mindmap/MindMapNode.tsx | 83 -------
.../ui/src/components/mindmap/edge/index.ts | 11 -
.../mindmap/hooks/useFlowKeyboardControl.ts | 145 -----------
packages/ui/src/components/mindmap/index.ts | 1 -
packages/ui/src/components/mindmap/layout.ts | 43 ----
packages/ui/src/components/mindmap/store.ts | 234 ------------------
packages/ui/src/components/mindmap/types.ts | 32 ---
packages/ui/src/components/mindmap/utils.ts | 0
packages/ui/src/hooks/useClickOutside.ts | 15 --
packages/ui/src/index.ts | 1 -
packages/ui/tsconfig.json | 43 ----
packages/ui/tsup.config.ts | 13 -
web-dist/index.html | 0
32 files changed, 12 insertions(+), 765 deletions(-)
mode change 100644 => 100755 apps/web/public/placeholder.webp
mode change 100644 => 100755 apps/web/src/app/main/layout/BasePost/BasePostLayout.tsx
mode change 100644 => 100755 apps/web/src/app/main/layout/BasePost/SearchModeRadio.tsx
mode change 100644 => 100755 apps/web/src/app/main/my-duty-path/components/MyDutyPathContainer.tsx
mode change 100644 => 100755 apps/web/src/app/main/my-duty/components/MyDutyListContainer.tsx
mode change 100644 => 100755 apps/web/src/app/main/my-learning/components/MyLearningListContainer.tsx
mode change 100644 => 100755 apps/web/src/app/main/my-path/components/MyPathListContainer.tsx
mode change 100644 => 100755 apps/web/src/app/main/path/components/DeptInfo.tsx
mode change 100644 => 100755 apps/web/src/app/main/path/components/TermInfo.tsx
mode change 100644 => 100755 apps/web/src/app/main/search/components/SearchContainer.tsx
mode change 100644 => 100755 apps/web/src/components/common/editor/constant.ts
mode change 100644 => 100755 apps/web/src/components/models/course/detail/JoinLearingButton.tsx
mode change 100644 => 100755 apps/web/src/components/models/post/PostCard.tsx
create mode 100755 apps/web/src/components/models/post/PostSelect.tsx
mode change 100644 => 100755 apps/web/src/components/models/post/SubPost/CourseCard.tsx
mode change 100644 => 100755 apps/web/src/components/models/post/SubPost/PathCard.tsx
delete mode 100755 packages/ui/package.json
delete mode 100755 packages/ui/src/components/mindmap/MindMap.tsx
delete mode 100755 packages/ui/src/components/mindmap/MindMapEdge.tsx
delete mode 100755 packages/ui/src/components/mindmap/MindMapNode.tsx
delete mode 100755 packages/ui/src/components/mindmap/edge/index.ts
delete mode 100755 packages/ui/src/components/mindmap/hooks/useFlowKeyboardControl.ts
delete mode 100755 packages/ui/src/components/mindmap/index.ts
delete mode 100755 packages/ui/src/components/mindmap/layout.ts
delete mode 100755 packages/ui/src/components/mindmap/store.ts
delete mode 100755 packages/ui/src/components/mindmap/types.ts
delete mode 100755 packages/ui/src/components/mindmap/utils.ts
delete mode 100755 packages/ui/src/hooks/useClickOutside.ts
delete mode 100755 packages/ui/src/index.ts
delete mode 100755 packages/ui/tsconfig.json
delete mode 100755 packages/ui/tsup.config.ts
mode change 100644 => 100755 web-dist/index.html
diff --git a/apps/web/public/placeholder.webp b/apps/web/public/placeholder.webp
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/layout/BasePost/BasePostLayout.tsx b/apps/web/src/app/main/layout/BasePost/BasePostLayout.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/layout/BasePost/SearchModeRadio.tsx b/apps/web/src/app/main/layout/BasePost/SearchModeRadio.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/my-duty-path/components/MyDutyPathContainer.tsx b/apps/web/src/app/main/my-duty-path/components/MyDutyPathContainer.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/my-duty/components/MyDutyListContainer.tsx b/apps/web/src/app/main/my-duty/components/MyDutyListContainer.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/my-learning/components/MyLearningListContainer.tsx b/apps/web/src/app/main/my-learning/components/MyLearningListContainer.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/my-path/components/MyPathListContainer.tsx b/apps/web/src/app/main/my-path/components/MyPathListContainer.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/path/components/DeptInfo.tsx b/apps/web/src/app/main/path/components/DeptInfo.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/path/components/TermInfo.tsx b/apps/web/src/app/main/path/components/TermInfo.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/app/main/search/components/SearchContainer.tsx b/apps/web/src/app/main/search/components/SearchContainer.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/components/common/editor/constant.ts b/apps/web/src/components/common/editor/constant.ts
old mode 100644
new mode 100755
diff --git a/apps/web/src/components/models/course/detail/JoinLearingButton.tsx b/apps/web/src/components/models/course/detail/JoinLearingButton.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/components/models/post/PostCard.tsx b/apps/web/src/components/models/post/PostCard.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/components/models/post/PostSelect.tsx b/apps/web/src/components/models/post/PostSelect.tsx
new file mode 100755
index 0000000..d5f5324
--- /dev/null
+++ b/apps/web/src/components/models/post/PostSelect.tsx
@@ -0,0 +1,12 @@
+import { api } from "@nice/client";
+
+export default function PostSelect() {
+ const { data } = api.post.findMany.useQuery({
+ where: {
+ title: {
+ contains: ""
+ }
+ }
+ })
+
+}
\ No newline at end of file
diff --git a/apps/web/src/components/models/post/SubPost/CourseCard.tsx b/apps/web/src/components/models/post/SubPost/CourseCard.tsx
old mode 100644
new mode 100755
diff --git a/apps/web/src/components/models/post/SubPost/PathCard.tsx b/apps/web/src/components/models/post/SubPost/PathCard.tsx
old mode 100644
new mode 100755
diff --git a/packages/ui/package.json b/packages/ui/package.json
deleted file mode 100755
index f057e65..0000000
--- a/packages/ui/package.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "name": "@nice/ui",
- "version": "1.0.0",
- "main": "./dist/index.js",
- "module": "./dist/index.mjs",
- "types": "./dist/index.d.ts",
- "private": true,
- "scripts": {
- "build": "tsup",
- "dev": "tsup --watch",
- "clean": "rimraf dist",
- "typecheck": "tsc --noEmit"
- },
- "dependencies": {
- "@dagrejs/dagre": "^1.1.4",
- "@nice/utils": "workspace:^",
- "@xyflow/react": "^12.3.6",
- "dagre": "^0.8.5",
- "nanoid": "^5.0.9",
- "react-hotkeys-hook": "^4.6.1",
- "zustand": "^5.0.3"
- },
- "peerDependencies": {
- "react": "18.2.0",
- "react-dom": "18.2.0"
- },
- "devDependencies": {
- "@types/dagre": "^0.7.52",
- "@types/node": "^20.3.1",
- "@types/react": "18.2.38",
- "@types/react-dom": "18.2.15",
- "concurrently": "^8.0.0",
- "rimraf": "^6.0.1",
- "ts-node": "^10.9.1",
- "tsup": "^8.3.5",
- "typescript": "^5.5.4"
- }
-}
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/MindMap.tsx b/packages/ui/src/components/mindmap/MindMap.tsx
deleted file mode 100755
index 24cb3a2..0000000
--- a/packages/ui/src/components/mindmap/MindMap.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-import { useCallback, useState, useRef, useEffect } from 'react';
-import {
- ReactFlow,
- Controls,
- Background,
- useReactFlow,
- Panel,
- ReactFlowProvider,
- NodeOrigin,
- ConnectionLineType,
- useStoreApi,
- InternalNode,
-} from '@xyflow/react';
-import MindMapNode from './MindMapNode';
-import useMindMapStore, { RFState } from './store';
-import { shallow, useShallow } from 'zustand/shallow';
-import MindMapEdge from './MindMapEdge';
-import '@xyflow/react/dist/style.css';
-import { useFlowKeyboardControls } from './hooks/useFlowKeyboardControl';
-
-const selector = (state: RFState) => ({
- nodes: state.nodes,
- edges: state.edges,
- onNodesChange: state.onNodesChange,
- onEdgesChange: state.onEdgesChange,
- addChildNode: state.addChildNode,
- addSiblingNode: state.addSiblingNode,
- selectedNodeId: state.selectedNodeId,
- setSelectedNodeIdId: state.setSelectedNodeId,
- undo: state.undo,
- redo: state.redo,
- canUndo: state.canUndo,
- canRedo: state.canRedo
-
-});
-const nodeOrigin: NodeOrigin = [0.5, 0.5];
-// 节点类型定义
-const nodeTypes = {
- mindmap: MindMapNode,
-};
-
-const edgeTypes = {
- mindmap: MindMapEdge,
-};
-const connectionLineStyle = {
- stroke: '#999',
- strokeWidth: 2,
- radius: 20 // Add corner radius for orthogonal lines
-};
-
-const defaultEdgeOptions = {
- style: connectionLineStyle,
- type: 'mindmap',
- animated: false
-};
-export function Flow() {
- const { nodes, edges, onNodesChange, undo, redo, setSelectedNodeIdId, onEdgesChange, addChildNode, addSiblingNode, selectedNodeId } = useMindMapStore(
- useShallow(selector)
- );
- useFlowKeyboardControls()
- return (
-
-
-
- React Flow Mind Map
-
- );
-}
-export function MindMap() {
- return
-
-
-}
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/MindMapEdge.tsx b/packages/ui/src/components/mindmap/MindMapEdge.tsx
deleted file mode 100755
index b67bc3a..0000000
--- a/packages/ui/src/components/mindmap/MindMapEdge.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { BaseEdge, EdgeProps, getBezierPath, getStraightPath } from '@xyflow/react';
-
-function MindMapEdge(props: EdgeProps) {
- const { sourceX, sourceY, targetX, targetY } = props;
-
- const [edgePath] = getBezierPath({
- sourceX,
- sourceY,
- targetX,
- targetY,
- });
-
- return
;
-}
-
-export default MindMapEdge;
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/MindMapNode.tsx b/packages/ui/src/components/mindmap/MindMapNode.tsx
deleted file mode 100755
index aff0ba1..0000000
--- a/packages/ui/src/components/mindmap/MindMapNode.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-import { Handle, NodeProps, Position, useEdges } from '@xyflow/react';
-import { MindMapNodeType } from './types';
-import useMindMapStore, { RFState } from './store';
-import { useEffect, useRef, useState } from 'react';
-import { useShallow } from 'zustand/shallow';
-import { useClickOutside } from '../../hooks/useClickOutside';
-import { useHotkeys } from 'react-hotkeys-hook';
-const selector = (state: RFState) => ({
- selectedNodeId: state.selectedNodeId,
- editingNodeId: state.editingNodeId,
- updateNodeLabel: state.updateNodeLabel,
- setSelectedNodeId: state.setSelectedNodeId,
- setEditingNodeId: state.setEditingNodeId
-
-});
-function MindMapNode({ id, data }: NodeProps
) {
- const nodeRef = useRef(null);
- const inputRef = useRef(null);
- const [inputValue, setInputValue] = useState(data.label);
-
- const {
- updateNodeLabel,
- selectedNodeId,
- setSelectedNodeId,
- setEditingNodeId,
- editingNodeId
- } = useMindMapStore(useShallow(selector));
- useEffect(() => {
- if (editingNodeId === id) {
- setEditingNodeId(id);
- setInputValue(data.label);
- setTimeout(() => {
- inputRef.current?.focus();
- inputRef.current?.select();
- }, 0);
- } else {
- inputRef.current?.blur()
- }
- }, [editingNodeId])
- const handleDoubleClick = (e: React.MouseEvent) => {
- e.stopPropagation();
- setEditingNodeId(id)
- };
-
- useHotkeys("space", (e) => {
- if (selectedNodeId === id)
- setEditingNodeId(id)
- }, { preventDefault: true });
- const handleClick = (e: React.MouseEvent) => {
- setSelectedNodeId(id);
- };
-
- useClickOutside(nodeRef, () => {
- console.log(selectedNodeId, id)
- if (selectedNodeId === id)
- setSelectedNodeId(null)
- if (editingNodeId === id) {
- setEditingNodeId(null)
- updateNodeLabel(id, inputValue)
- }
- });
-
- return (
-
- setInputValue(e.target.value)}
- className="input"
- readOnly={id !== editingNodeId}
- />
-
-
-
- );
-}
-
-export default MindMapNode;
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/edge/index.ts b/packages/ui/src/components/mindmap/edge/index.ts
deleted file mode 100755
index d702aa7..0000000
--- a/packages/ui/src/components/mindmap/edge/index.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import type { Edge, EdgeTypes } from "@xyflow/react";
-
-export const initialEdges = [
- { id: "a->c", source: "a", target: "c", animated: true },
- { id: "b->d", source: "b", target: "d" },
- { id: "c->d", source: "c", target: "d", animated: true },
-] satisfies Edge[];
-
-export const edgeTypes = {
- // Add your custom edge types here!
-} satisfies EdgeTypes;
diff --git a/packages/ui/src/components/mindmap/hooks/useFlowKeyboardControl.ts b/packages/ui/src/components/mindmap/hooks/useFlowKeyboardControl.ts
deleted file mode 100755
index 74835c4..0000000
--- a/packages/ui/src/components/mindmap/hooks/useFlowKeyboardControl.ts
+++ /dev/null
@@ -1,145 +0,0 @@
-import { useCallback } from 'react';
-import { useHotkeys } from 'react-hotkeys-hook';
-import { useStoreApi } from '@xyflow/react';
-import useMindMapStore, { RFState } from '../store';
-import { useShallow } from 'zustand/shallow';
-
-const controlsSelector = (state: RFState) => ({
- selectedNodeId: state.selectedNodeId,
- setSelectedNodeId: state.setSelectedNodeId,
- addChildNode: state.addChildNode,
- addSiblingNode: state.addSiblingNode,
- undo: state.undo,
- redo: state.redo,
-});
-
-export function useFlowKeyboardControls() {
- const {
- selectedNodeId,
- setSelectedNodeId,
- addChildNode,
- addSiblingNode,
- undo,
- redo,
- } = useMindMapStore(useShallow(controlsSelector));
-
- const store = useStoreApi();
-
- const getNextNodeInDirection = useCallback((direction: 'left' | 'right' | 'up' | 'down') => {
- const { nodeLookup, edges } = store.getState();
- if (!selectedNodeId) return null;
-
- const currentNode = nodeLookup.get(selectedNodeId);
- if (!currentNode) return null;
-
- // 构建节点关系图
- const nodeRelations = new Map();
-
- edges.forEach(edge => {
- const source = edge.source;
- const target = edge.target;
-
- if (!nodeRelations.has(source)) {
- nodeRelations.set(source, { parent: null, children: [], siblings: [] });
- }
- if (!nodeRelations.has(target)) {
- nodeRelations.set(target, { parent: null, children: [], siblings: [] });
- }
-
- nodeRelations.get(target)!.parent = source;
- nodeRelations.get(source)!.children.push(target);
- });
-
- // 找出同级节点
- const currentRelation = nodeRelations.get(selectedNodeId);
- if (currentRelation?.parent) {
- const parentRelation = nodeRelations.get(currentRelation.parent);
- if (parentRelation) {
- currentRelation.siblings = parentRelation.children.filter(id => id !== selectedNodeId);
- }
- }
-
- // 根据方向决定下一个节点
- switch (direction) {
- case 'left': {
- // 如果当前节点是子节点,优先选择父节点
- if (currentRelation?.parent) {
- const parentNode = nodeLookup.get(currentRelation.parent);
- if (parentNode && parentNode.position.x < currentNode.position.x) {
- return currentRelation.parent;
- }
- }
- break;
- }
- case 'right': {
- // 如果有子节点,选择第一个子节点
- const children = currentRelation?.children || [];
- if (children.length > 0) {
- return children[0];
- }
- break;
- }
- case 'up': {
- // 在同级节点中找位置靠上的节点
- const siblings = currentRelation?.siblings || [];
- const upperSiblings = siblings
- .map(id => nodeLookup.get(id))
- .filter(node => node && node.position.y < currentNode.position.y)
- .sort((a, b) => b!.position.y - a!.position.y);
-
- if (upperSiblings.length > 0) {
- return upperSiblings[0]!.id;
- }
- break;
- }
- case 'down': {
- // 在同级节点中找位置靠下的节点
- const siblings = currentRelation?.siblings || [];
- const lowerSiblings = siblings
- .map(id => nodeLookup.get(id))
- .filter(node => node && node.position.y > currentNode.position.y)
- .sort((a, b) => a!.position.y - b!.position.y);
-
- if (lowerSiblings.length > 0) {
- return lowerSiblings[0]!.id;
- }
- break;
- }
- }
-
- return null;
- }, [selectedNodeId, store]);
-
- // Tab 键添加子节点
- useHotkeys('tab', (e) => {
- e.preventDefault();
- if (selectedNodeId) addChildNode(selectedNodeId);
- }, { enableOnFormTags: true, preventDefault: true });
-
- // Enter 键添加同级节点
- useHotkeys('enter', (e) => {
- e.preventDefault();
- if (selectedNodeId) addSiblingNode(selectedNodeId);
- }, { enableOnFormTags: true, preventDefault: true });
-
- // 撤销重做
- // useHotkeys('ctrl+z, cmd+z', (e) => {
-
- // undo();
- // }, { enableOnFormTags: false });
-
- // useHotkeys('ctrl+y, cmd+y', (e) => {
-
- // redo();
- // }, { enableOnFormTags: false });
-
- // 方向键导航
- const directions = ['left', 'right', 'up', 'down'] as const;
- directions.forEach(direction => {
- useHotkeys(direction, (e) => {
- e.preventDefault();
- const nextNodeId = getNextNodeInDirection(direction);
- if (nextNodeId) setSelectedNodeId(nextNodeId);
- }, { enableOnFormTags: true });
- });
-}
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/index.ts b/packages/ui/src/components/mindmap/index.ts
deleted file mode 100755
index 3505c9b..0000000
--- a/packages/ui/src/components/mindmap/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./MindMap"
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/layout.ts b/packages/ui/src/components/mindmap/layout.ts
deleted file mode 100755
index 7b66c09..0000000
--- a/packages/ui/src/components/mindmap/layout.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Edge, Node } from '@xyflow/react';
-import dagre from 'dagre';
-
-export const getLayoutedElements = (nodes: Node[], edges: Edge[], direction = 'LR') => {
- const dagreGraph = new dagre.graphlib.Graph();
- dagreGraph.setDefaultEdgeLabel(() => ({}));
-
- const nodeWidth = 200;
- const nodeHeight = 50;
-
- dagreGraph.setGraph({
- rankdir: direction,
- nodesep: 80,
- ranksep: 100
- });
-
- // 添加节点
- nodes.forEach((node) => {
- dagreGraph.setNode(node.id, { width: nodeWidth, height: nodeHeight });
- });
-
- // 添加边
- edges.forEach((edge) => {
- dagreGraph.setEdge(edge.source, edge.target);
- });
-
- // 计算布局
- dagre.layout(dagreGraph);
-
- // 获取新的节点位置
- const layoutedNodes = nodes.map((node) => {
- const nodeWithPosition = dagreGraph.node(node.id);
- return {
- ...node,
- position: {
- x: nodeWithPosition.x - nodeWidth / 2,
- y: nodeWithPosition.y - nodeHeight / 2,
- },
- };
- });
-
- return { nodes: layoutedNodes, edges };
-};
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/store.ts b/packages/ui/src/components/mindmap/store.ts
deleted file mode 100755
index 26f1242..0000000
--- a/packages/ui/src/components/mindmap/store.ts
+++ /dev/null
@@ -1,234 +0,0 @@
-import {
- Edge,
- EdgeChange,
- Node,
- NodeChange,
- OnNodesChange,
- OnEdgesChange,
- applyNodeChanges,
- applyEdgeChanges,
- XYPosition,
-} from '@xyflow/react';
-import { nanoid } from 'nanoid';
-import { create } from 'zustand';
-import { HistoryData, HistoryState, NodeLayout, NodeRelationType } from './types';
-import { getLayoutedElements } from './layout';
-
-
-const createHistoryState = (initialPresent: HistoryData): HistoryState => ({
- past: [],
- present: initialPresent,
- future: [],
-});
-
-const initialNodes: Node[] = [{
- id: 'root',
- type: 'mindmap',
- data: { label: 'React Flow Mind Map' },
- position: { x: 0, y: 0 },
-}];
-
-export type RFState = {
- nodes: Node[];
- edges: Edge[];
- onNodesChange: OnNodesChange;
- onEdgesChange: OnEdgesChange;
- history: HistoryState;
- addChildNode: (nodeId: string, position?: XYPosition) => void;
- updateNodeLabel: (nodeId: string, label: string) => void
- addSiblingNode: (nodeId: string, position?: XYPosition) => void
- selectedNodeId: string | null;
- setSelectedNodeId: (nodeId: string | null) => void;
- editingNodeId: string | null;
- setEditingNodeId: (nodeId: string | null) => void;
- isEditing: boolean;
- undo: () => void;
- redo: () => void;
- canUndo: boolean;
- canRedo: boolean;
-};
-const useMindMapStore = create((set, get) => {
- const updateHistory = (newState: Partial) => {
- const currentState = get().history.present;
- return {
- past: [...get().history.past, currentState],
- present: { ...currentState, ...newState },
- future: [],
- };
- };
-
- const createNewNode = (label: string = 'New Node'): Node => ({
- id: nanoid(),
- type: 'mindmap',
- data: { label },
- position: { x: 0, y: 0 }
- });
- const addNode = (
- parentId: string,
- relationType: NodeRelationType
- ) => {
- const { nodes, edges, editingNodeId } = get();
- const parentNode = nodes.find(node => node.id === parentId);
- if (!parentNode) return;
- const newNode = createNewNode();
- const newEdge = {
- id: nanoid(),
- source: relationType === 'child' ? parentId : edges.find(e => e.target === parentId)?.source ?? parentId,
- target: newNode.id,
- type: 'smoothstep',
- };
- const newNodes = [...nodes, newNode];
- const newEdges = [...edges, newEdge];
- const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements(newNodes, newEdges);
- set({
- nodes: layoutedNodes,
- edges: layoutedEdges,
- selectedNodeId: newNode.id,
- history: updateHistory({
- nodes: layoutedNodes,
- edges: layoutedEdges,
- selectedNodeId: newNode.id,
- editingNodeId,
- }),
- });
- };
- return {
- nodes: initialNodes,
- edges: [],
- isEditing: false,
- history: createHistoryState({ nodes: initialNodes, edges: [], selectedNodeId: null, editingNodeId: null }),
- editingNodeId: null,
- setEditingNodeId: (nodeId: string | null) => {
- const { nodes, edges, selectedNodeId } = get();
- set({
- editingNodeId: nodeId,
- isEditing: Boolean(nodeId),
- history: {
- past: [...get().history.past, get().history.present],
- present: {
- nodes,
- edges,
- selectedNodeId,
- editingNodeId: nodeId
- },
- future: [],
- },
- });
- },
- selectedNodeId: null,
- setSelectedNodeId: (nodeId: string | null) => {
- const { nodes, edges, editingNodeId } = get();
- set({
- selectedNodeId: nodeId,
- history: {
- past: [...get().history.past, get().history.present],
- present: { nodes, edges, selectedNodeId: nodeId, editingNodeId },
- future: [],
- },
- });
- },
- updateNodeLabel: (nodeId: string, label: string) => {
- const { nodes, edges, selectedNodeId, editingNodeId } = get();
- const newNodes = nodes.map((node) => {
- if (node.id === nodeId) {
- return { ...node, data: { ...node.data, label } };
- }
- return node;
- });
- set({
- nodes: newNodes,
- edges,
- selectedNodeId,
- history: {
- past: [...get().history.past, get().history.present],
- present: { nodes: newNodes, edges, selectedNodeId, editingNodeId },
- future: [],
- },
- });
- },
- onNodesChange: (changes: NodeChange[]) => {
- console.log('on node change', changes)
- const { nodes, edges, selectedNodeId } = get();
- const newNodes = applyNodeChanges(changes, nodes);
- set({ nodes: newNodes });
- },
- onEdgesChange: (changes: EdgeChange[]) => {
- const { nodes, edges, selectedNodeId } = get();
- const newEdges = applyEdgeChanges(changes, edges);
-
- set({ edges: newEdges });
- },
- addChildNode: (nodeId: string) =>
- addNode(nodeId, 'child'),
- addSiblingNode: (nodeId: string) =>
- addNode(nodeId, 'sibling'),
- undo: () => {
- const { history } = get();
- console.log('[Undo] Starting undo operation');
-
- if (history.past.length === 0) {
- console.log('[Undo] No past states available, undo skipped');
- return;
- }
- const previous = history.past[history.past.length - 1];
- const newPast = history.past.slice(0, -1);
- const newPresent = { ...history.present };
- console.log('[Undo] Previous state:', previous);
- console.log('[Undo] New past length:', newPast.length);
-
- set({
- nodes: previous.nodes,
- edges: previous.edges,
- selectedNodeId: previous.selectedNodeId,
- editingNodeId: previous.editingNodeId,
- history: {
- past: newPast,
- present: previous,
- future: [newPresent, ...history.future],
- },
- });
-
- console.log('[Undo] Operation completed');
- },
-
- redo: () => {
- const { history } = get();
- console.log('[Redo] Starting redo operation');
-
- if (history.future.length === 0) {
- console.log('[Redo] No future states available, redo skipped');
- return;
- }
-
- const next = history.future[0];
- const newFuture = history.future.slice(1);
-
- console.log('[Redo] Next state:', next);
- console.log('[Redo] New future length:', newFuture.length);
-
- set({
- nodes: next.nodes,
- edges: next.edges,
- selectedNodeId: next.selectedNodeId,
- editingNodeId: next.editingNodeId,
- history: {
- past: [...history.past, history.present],
- present: next,
- future: newFuture,
- },
- });
-
- console.log('[Redo] Operation completed');
- },
- get canUndo() {
- return get().history.past.length > 0;
- },
-
- get canRedo() {
- return get().history.future.length > 0;
- },
- }
-});
-
-
-export default useMindMapStore;
\ No newline at end of file
diff --git a/packages/ui/src/components/mindmap/types.ts b/packages/ui/src/components/mindmap/types.ts
deleted file mode 100755
index 72911e2..0000000
--- a/packages/ui/src/components/mindmap/types.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import type { Node, NodeTypes, BuiltInNode, Edge } from "@xyflow/react";
-
-export type MindMapNodeType = Node<
- {
- label: string
- level: number
- isExpanded?: boolean
- metadata?: Record
- }, "mindmap">
-
-export type MindMapEdgeType = Edge<{
- label: string
-}, "mindmap">
-
-export type HistoryState = {
- past: T[];
- present: T;
- future: T[];
-};
-export type HistoryData = {
- nodes: Node[];
- edges: Edge[];
- selectedNodeId: string | null;
- editingNodeId: string | null; // Add this
-};
-export type NodeRelationType = 'child' | 'sibling';
-export type NodeLayout = {
- horizontalSpacing: number;
- verticalSpacing: number;
- nodeWidth: number;
- nodeHeight: number;
-};
diff --git a/packages/ui/src/components/mindmap/utils.ts b/packages/ui/src/components/mindmap/utils.ts
deleted file mode 100755
index e69de29..0000000
diff --git a/packages/ui/src/hooks/useClickOutside.ts b/packages/ui/src/hooks/useClickOutside.ts
deleted file mode 100755
index affd62d..0000000
--- a/packages/ui/src/hooks/useClickOutside.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { useEffect, RefObject } from 'react';
-
-export function useClickOutside(ref: RefObject, handler: () => void) {
- useEffect(() => {
- function handleClickOutside(event: MouseEvent) {
- console.log(event.target)
- if (ref.current && !ref.current.contains(event.target as Node)) {
- handler();
- }
- }
-
- document.addEventListener('mousedown', handleClickOutside);
- return () => document.removeEventListener('mousedown', handleClickOutside);
- }, [ref, handler]);
-}
\ No newline at end of file
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
deleted file mode 100755
index 33ff1f5..0000000
--- a/packages/ui/src/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./components/mindmap"
diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json
deleted file mode 100755
index f2c2a6d..0000000
--- a/packages/ui/tsconfig.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "compilerOptions": {
- "target": "es2022",
- "module": "esnext",
- "allowJs": true,
- "lib": [
- "DOM",
- "es2022",
- "DOM.Iterable"
- ],
- "declaration": true,
- "declarationMap": true,
- "sourceMap": true,
- "moduleResolution": "node",
- "resolveJsonModule": true,
- "removeComments": true,
- "skipLibCheck": true,
- "strict": true,
- "isolatedModules": true,
- "jsx": "react-jsx",
- "esModuleInterop": true,
- "noUnusedLocals": false,
- "noUnusedParameters": false,
- "noImplicitReturns": false,
- "noFallthroughCasesInSwitch": false,
- "noUncheckedIndexedAccess": false,
- "noImplicitOverride": false,
- "noPropertyAccessFromIndexSignature": false,
- "outDir": "dist",
- "incremental": true,
- "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
- },
- "include": [
- "src"
- ],
- "exclude": [
- "node_modules",
- "dist",
- "**/*.test.ts",
- "**/*.spec.ts",
- "**/__tests__"
- ]
-}
\ No newline at end of file
diff --git a/packages/ui/tsup.config.ts b/packages/ui/tsup.config.ts
deleted file mode 100755
index f21629b..0000000
--- a/packages/ui/tsup.config.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { defineConfig } from 'tsup'
-
-export default defineConfig({
- entry: ['src/index.ts'],
- format: ['esm', 'cjs'],
- dts: true,
- clean: true,
- sourcemap: true,
- minify: true,
- external: ['react', 'react-dom'],
- bundle: true,
- target: "esnext"
-})
\ No newline at end of file
diff --git a/web-dist/index.html b/web-dist/index.html
old mode 100644
new mode 100755
From 8be58c2f1026699efaa272b26cd07a2b71a5a310 Mon Sep 17 00:00:00 2001
From: longdayi <13477510+longdayilongdayi@user.noreply.gitee.com>
Date: Tue, 4 Mar 2025 22:15:34 +0800
Subject: [PATCH 04/15] 03042215
---
.gitignore | 3 ++-
Dockerfile | 6 ------
apps/web/index.html | 10 ++++++----
web-dist/index.html | 47 ++++++++++++++++++++++-----------------------
4 files changed, 31 insertions(+), 35 deletions(-)
diff --git a/.gitignore b/.gitignore
index 2e6bac7..4954c82 100755
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ backup
# dependencies
**/node_modules/
volumes
+web-dist
/.pnp
.pnp.js
*.tar
@@ -69,4 +70,4 @@ yarn-error.log*
**/.idea/
uploads
packages/mind-elixir-core
-config/nginx/conf.d/web.conf
\ No newline at end of file
+config/nginx/conf.d/web.conf
diff --git a/Dockerfile b/Dockerfile
index 0a51235..3a9ff79 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -108,21 +108,15 @@ CMD ["/usr/bin/entrypoint.sh"]
# 使用 Nginx 的 Alpine 版本作为基础镜像
FROM nginx:stable-alpine as nginx
-
# 替换 Alpine 的软件源为阿里云镜像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
-
# 设置工作目录
WORKDIR /usr/share/nginx/html
-
# 设置环境变量
ENV NODE_ENV production
-
# 安装 envsubst 和 inotify-tools
RUN apk add --no-cache gettext inotify-tools
-
# 创建 /data/uploads 目录
RUN mkdir -p /data/uploads
-
# 暴露 80 端口
EXPOSE 80
\ No newline at end of file
diff --git a/apps/web/index.html b/apps/web/index.html
index 2305b2c..31078c2 100755
--- a/apps/web/index.html
+++ b/apps/web/index.html
@@ -7,12 +7,14 @@
- %VITE_APP_APP_NAME%
+ $APP_NAME
diff --git a/web-dist/index.html b/web-dist/index.html
index 73a792f..44e046f 100755
--- a/web-dist/index.html
+++ b/web-dist/index.html
@@ -1,27 +1,26 @@
-
-
-
-
-
- fhmooc
-
-
-
-
-
-
-
+
+
+
+
+
+ $APP_NAME
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 99bbc982e12d33681fd6776f75ee7f71512c571e Mon Sep 17 00:00:00 2001
From: Rao <1227431568@qq.com>
Date: Tue, 4 Mar 2025 22:24:28 +0800
Subject: [PATCH 05/15] rht
---
apps/web/src/main.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/apps/web/src/main.tsx b/apps/web/src/main.tsx
index 962b763..34a26e2 100755
--- a/apps/web/src/main.tsx
+++ b/apps/web/src/main.tsx
@@ -11,6 +11,7 @@ ModuleRegistry.registerModules([ClientSideRowModelModule]);
LicenseManager.setLicenseKey(
'LICENSE_KEY_BODY[version=v3][0102]_EXPIRY_NDg4NDc0ODcwNTExMw==094bf1c7852b11df1841f4d14457ae96'
);
+
ReactDOM.createRoot(document.getElementById("root")!).render(
From 889e5abb87f427fc0c1eb728bb9fc5b78cdd9f6b Mon Sep 17 00:00:00 2001
From: longdayi <13477510+longdayilongdayi@user.noreply.gitee.com>
Date: Tue, 4 Mar 2025 22:24:52 +0800
Subject: [PATCH 06/15] 03042223
---
apps/web/package.json | 1 -
.../app/main/home/components/HeroSection.tsx | 10 --
config/nginx/conf.d/web.conf | 2 +-
pnpm-lock.yaml | 166 ++++--------------
web-dist/index.html | 12 +-
5 files changed, 41 insertions(+), 150 deletions(-)
mode change 100755 => 100644 web-dist/index.html
diff --git a/apps/web/package.json b/apps/web/package.json
index 909aa90..b484901 100755
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -34,7 +34,6 @@
"@nice/common": "workspace:^",
"@nice/config": "workspace:^",
"@nice/iconer": "workspace:^",
- "@nice/ui": "workspace:^",
"@nice/utils": "workspace:^",
"@tanstack/query-async-storage-persister": "^5.51.9",
"@tanstack/react-query": "^5.51.21",
diff --git a/apps/web/src/app/main/home/components/HeroSection.tsx b/apps/web/src/app/main/home/components/HeroSection.tsx
index 74643fb..f4c21fd 100755
--- a/apps/web/src/app/main/home/components/HeroSection.tsx
+++ b/apps/web/src/app/main/home/components/HeroSection.tsx
@@ -18,16 +18,6 @@ import type { CarouselRef } from "antd/es/carousel";
import { useAppConfig } from "@nice/client";
import { useNavigate } from "react-router-dom";
-const { Title, Text } = Typography;
-
-interface CarouselItem {
- title: string;
- desc: string;
- image: string;
- action: string;
- color: string;
-}
-
interface PlatformStat {
icon: React.ReactNode;
value: number;
diff --git a/config/nginx/conf.d/web.conf b/config/nginx/conf.d/web.conf
index 88fa2c9..67302b8 100755
--- a/config/nginx/conf.d/web.conf
+++ b/config/nginx/conf.d/web.conf
@@ -100,7 +100,7 @@ server {
# 仅供内部使用
internal;
# 代理到认证服务
- proxy_pass http://host.docker.internal:3006/auth/file;
+ proxy_pass http://host.docker.internal:3000/auth/file;
# 请求优化:不传递请求体
proxy_pass_request_body off;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 382d2e7..0efc82c 100755
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,7 +12,7 @@ importers:
dependencies:
'@nestjs/bullmq':
specifier: ^10.2.0
- version: 10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))(bullmq@5.34.8)
+ version: 10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(bullmq@5.34.8)
'@nestjs/common':
specifier: ^10.3.10
version: 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)
@@ -33,7 +33,7 @@ importers:
version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/websockets@10.4.15)(rxjs@7.8.1)
'@nestjs/schedule':
specifier: ^4.1.0
- version: 4.1.2(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))
+ version: 4.1.2(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)
'@nestjs/websockets':
specifier: ^10.3.10
version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(@nestjs/platform-socket.io@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)
@@ -148,7 +148,7 @@ importers:
version: 10.2.3(chokidar@3.6.0)(typescript@5.7.2)
'@nestjs/testing':
specifier: ^10.0.0
- version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15))
+ version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(@nestjs/platform-express@10.4.15)
'@types/exceljs':
specifier: ^1.3.0
version: 1.3.2
@@ -296,9 +296,6 @@ importers:
'@nice/iconer':
specifier: workspace:^
version: link:../../packages/iconer
- '@nice/ui':
- specifier: workspace:^
- version: link:../../packages/ui
'@nice/utils':
specifier: workspace:^
version: link:../../packages/utils
@@ -785,64 +782,6 @@ importers:
specifier: ^5.5.4
version: 5.7.2
- packages/ui:
- dependencies:
- '@dagrejs/dagre':
- specifier: ^1.1.4
- version: 1.1.4
- '@nice/utils':
- specifier: workspace:^
- version: link:../utils
- '@xyflow/react':
- specifier: ^12.3.6
- version: 12.3.6(@types/react@18.2.38)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- dagre:
- specifier: ^0.8.5
- version: 0.8.5
- nanoid:
- specifier: ^5.0.9
- version: 5.0.9
- react:
- specifier: 18.2.0
- version: 18.2.0
- react-dom:
- specifier: 18.2.0
- version: 18.2.0(react@18.2.0)
- react-hotkeys-hook:
- specifier: ^4.6.1
- version: 4.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
- zustand:
- specifier: ^5.0.3
- version: 5.0.3(@types/react@18.2.38)(react@18.2.0)(use-sync-external-store@1.4.0(react@18.2.0))
- devDependencies:
- '@types/dagre':
- specifier: ^0.7.52
- version: 0.7.52
- '@types/node':
- specifier: ^20.3.1
- version: 20.17.12
- '@types/react':
- specifier: 18.2.38
- version: 18.2.38
- '@types/react-dom':
- specifier: 18.2.15
- version: 18.2.15
- concurrently:
- specifier: ^8.0.0
- version: 8.2.2
- rimraf:
- specifier: ^6.0.1
- version: 6.0.1
- ts-node:
- specifier: ^10.9.1
- version: 10.9.2(@swc/core@1.10.6(@swc/helpers@0.5.15))(@types/node@20.17.12)(typescript@5.7.2)
- tsup:
- specifier: ^8.3.5
- version: 8.3.5(@microsoft/api-extractor@7.49.2(@types/node@20.17.12))(@swc/core@1.10.6(@swc/helpers@0.5.15))(jiti@1.21.7)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.7.0)
- typescript:
- specifier: ^5.5.4
- version: 5.7.2
-
packages/utils:
devDependencies:
'@types/node':
@@ -1395,13 +1334,6 @@ packages:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
- '@dagrejs/dagre@1.1.4':
- resolution: {integrity: sha512-QUTc54Cg/wvmlEUxB+uvoPVKFazM1H18kVHBQNmK2NbrDR5ihOCR6CXLnDSZzMcSQKJtabPUWridBOlJM3WkDg==}
-
- '@dagrejs/graphlib@2.2.4':
- resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==}
- engines: {node: '>17.0.0'}
-
'@dnd-kit/accessibility@3.1.1':
resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
peerDependencies:
@@ -1987,67 +1919,79 @@ packages:
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-arm@1.0.5':
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.0.4':
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linux-x64@1.0.4':
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-linux-arm64@0.33.5':
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-arm@0.33.5':
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-s390x@0.33.5':
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@img/sharp-linux-x64@0.33.5':
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@img/sharp-linuxmusl-arm64@0.33.5':
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@img/sharp-linuxmusl-x64@0.33.5':
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@img/sharp-wasm32@0.33.5':
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
@@ -2515,51 +2459,61 @@ packages:
resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==}
cpu: [arm]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.30.1':
resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==}
cpu: [arm]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.30.1':
resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.30.1':
resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-linux-loongarch64-gnu@4.30.1':
resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==}
cpu: [loong64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-powerpc64le-gnu@4.30.1':
resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==}
cpu: [ppc64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-riscv64-gnu@4.30.1':
resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==}
cpu: [riscv64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-s390x-gnu@4.30.1':
resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==}
cpu: [s390x]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.30.1':
resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.30.1':
resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@rollup/rollup-win32-arm64-msvc@4.30.1':
resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==}
@@ -2918,24 +2872,28 @@ packages:
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
+ libc: [glibc]
'@swc/core-linux-arm64-musl@1.10.6':
resolution: {integrity: sha512-hB2xZFmXCKf2iJF5y2z01PSuLqEoUP3jIX/XlIHN+/AIP7PkSKsValE63LnjlnWPnSEI0IxUyRE3T3FzWE/fQQ==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
+ libc: [musl]
'@swc/core-linux-x64-gnu@1.10.6':
resolution: {integrity: sha512-PRGPp0I22+oJ8RMGg8M4hXYxEffH3ayu0WoSDPOjfol1F51Wj1tfTWN4wVa2RibzJjkBwMOT0KGLGb/hSEDDXQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
+ libc: [glibc]
'@swc/core-linux-x64-musl@1.10.6':
resolution: {integrity: sha512-SoNBxlA86lnoV9vIz/TCyakLkdRhFSHx6tFMKNH8wAhz1kKYbZfDmpYoIzeQqdTh0tpx8e/Zu1zdK4smovsZqQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
+ libc: [musl]
'@swc/core-win32-arm64-msvc@1.10.6':
resolution: {integrity: sha512-6L5Y2E+FVvM+BtoA+mJFjf/SjpFr73w2kHBxINxwH8/PkjAjkePDr5m0ibQhPXV61bTwX49+1otzTY85EsUW9Q==}
@@ -4275,9 +4233,6 @@ packages:
resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
engines: {node: '>=12'}
- dagre@0.8.5:
- resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==}
-
dargs@7.0.0:
resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
engines: {node: '>=8'}
@@ -5016,9 +4971,6 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- graphlib@2.1.8:
- resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==}
-
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -6706,12 +6658,6 @@ packages:
react: '>=16'
react-dom: '>=16'
- react-hotkeys-hook@4.6.1:
- resolution: {integrity: sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==}
- peerDependencies:
- react: '>=16.8.1'
- react-dom: '>=16.8.1'
-
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
@@ -7885,24 +7831,6 @@ packages:
react:
optional: true
- zustand@5.0.3:
- resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
- engines: {node: '>=12.20.0'}
- peerDependencies:
- '@types/react': '>=18.0.0'
- immer: '>=9.0.6'
- react: '>=18.0.0'
- use-sync-external-store: '>=1.2.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- immer:
- optional: true
- react:
- optional: true
- use-sync-external-store:
- optional: true
-
snapshots:
'@ag-grid-community/client-side-row-model@32.3.3':
@@ -8911,12 +8839,6 @@ snapshots:
dependencies:
'@jridgewell/trace-mapping': 0.3.9
- '@dagrejs/dagre@1.1.4':
- dependencies:
- '@dagrejs/graphlib': 2.2.4
-
- '@dagrejs/graphlib@2.2.4': {}
-
'@dnd-kit/accessibility@3.1.1(react@18.2.0)':
dependencies:
react: 18.2.0
@@ -9654,15 +9576,15 @@ snapshots:
'@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3':
optional: true
- '@nestjs/bull-shared@10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))':
+ '@nestjs/bull-shared@10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)':
dependencies:
'@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)
tslib: 2.8.1
- '@nestjs/bullmq@10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))(bullmq@5.34.8)':
+ '@nestjs/bullmq@10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(bullmq@5.34.8)':
dependencies:
- '@nestjs/bull-shared': 10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))
+ '@nestjs/bull-shared': 10.2.3(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)
'@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)
bullmq: 5.34.8
@@ -9759,7 +9681,7 @@ snapshots:
- supports-color
- utf-8-validate
- '@nestjs/schedule@4.1.2(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))':
+ '@nestjs/schedule@4.1.2(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)':
dependencies:
'@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)
@@ -9777,7 +9699,7 @@ snapshots:
transitivePeerDependencies:
- chokidar
- '@nestjs/testing@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15))':
+ '@nestjs/testing@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.4.15)(@nestjs/platform-express@10.4.15)':
dependencies:
'@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)
'@nestjs/core': 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/platform-express@10.4.15)(@nestjs/websockets@10.4.15)(reflect-metadata@0.2.2)(rxjs@7.8.1)
@@ -12118,11 +12040,6 @@ snapshots:
d3-selection: 3.0.0
d3-transition: 3.0.1(d3-selection@3.0.0)
- dagre@0.8.5:
- dependencies:
- graphlib: 2.1.8
- lodash: 4.17.21
-
dargs@7.0.0: {}
date-fns@2.30.0:
@@ -12984,10 +12901,6 @@ snapshots:
graphemer@1.4.0: {}
- graphlib@2.1.8:
- dependencies:
- lodash: 4.17.21
-
hard-rejection@2.1.0: {}
has-flag@4.0.0: {}
@@ -14872,11 +14785,6 @@ snapshots:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- react-hotkeys-hook@4.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0):
- dependencies:
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
-
react-is@16.13.1: {}
react-is@18.3.1: {}
@@ -16106,9 +16014,3 @@ snapshots:
optionalDependencies:
'@types/react': 18.2.38
react: 18.2.0
-
- zustand@5.0.3(@types/react@18.2.38)(react@18.2.0)(use-sync-external-store@1.4.0(react@18.2.0)):
- optionalDependencies:
- '@types/react': 18.2.38
- react: 18.2.0
- use-sync-external-store: 1.4.0(react@18.2.0)
diff --git a/web-dist/index.html b/web-dist/index.html
old mode 100755
new mode 100644
index 44e046f..2bfb23d
--- a/web-dist/index.html
+++ b/web-dist/index.html
@@ -7,14 +7,14 @@
- $APP_NAME
+ test
From 7e79e8aca2b6eb416b8c9a79b0106b079ddc3471 Mon Sep 17 00:00:00 2001
From: Rao <1227431568@qq.com>
Date: Wed, 5 Mar 2025 08:30:42 +0800
Subject: [PATCH 07/15] rht
---
apps/server/src/tasks/init/init.service.ts | 5 ++---
config/nginx/entrypoint.sh | 2 +-
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/apps/server/src/tasks/init/init.service.ts b/apps/server/src/tasks/init/init.service.ts
index 8d6a955..3844ffb 100755
--- a/apps/server/src/tasks/init/init.service.ts
+++ b/apps/server/src/tasks/init/init.service.ts
@@ -41,12 +41,11 @@ export class InitService {
const existingTaxonomies = await db.taxonomy.findMany();
const existingTaxonomyMap = new Map(
- existingTaxonomies.map((taxonomy) => [taxonomy.name, taxonomy]),
+ existingTaxonomies.map((taxonomy) => [taxonomy.slug, taxonomy]),
);
for (const [index, taxonomy] of InitTaxonomies.entries()) {
- const existingTaxonomy = existingTaxonomyMap.get(taxonomy.name);
-
+ const existingTaxonomy = existingTaxonomyMap.get(taxonomy.slug);
if (!existingTaxonomy) {
// Create new taxonomy
await db.taxonomy.create({
diff --git a/config/nginx/entrypoint.sh b/config/nginx/entrypoint.sh
index cb85633..9fa65b4 100755
--- a/config/nginx/entrypoint.sh
+++ b/config/nginx/entrypoint.sh
@@ -14,7 +14,7 @@ done
# Check if the index.html file exists before processing
if [ -f "/usr/share/nginx/html/index.html" ]; then
# Use envsubst to replace environment variable placeholders
- envsubst < /usr/share/nginx/html/index.html > /usr/share/nginx/html/index.html.tmp
+ envsubst < /usr/share/nginx/html/index.temp > /usr/share/nginx/html/index.html.tmp
mv /usr/share/nginx/html/index.html.tmp /usr/share/nginx/html/index.html
else
echo "Info: /usr/share/nginx/html/index.html does not exist , skip replace env"
From ab208201aa8213723b17125218bf6711685eb253 Mon Sep 17 00:00:00 2001
From: longdayi <13477510+longdayilongdayi@user.noreply.gitee.com>
Date: Wed, 5 Mar 2025 09:17:36 +0800
Subject: [PATCH 08/15] 202503050917
---
Dockerfile | 43 +-
apps/web/index.html | 2 +-
apps/web/src/providers/auth-provider.tsx | 3 +
apps/web/src/utils/axios-client.ts | 1 +
config/nginx/conf.d/web.conf | 4 +-
config/nginx/entrypoint.sh | 5 +-
docker-compose.example.yml | 243 ++-
packages/client/src/api/hooks/useAppConfig.ts | 2 +-
packages/common/package.json | 5 +-
packages/tus/package.json | 2 +-
packages/utils/package.json | 3 +-
.../account-location-BCNgMMMw-BzoBAix2.js | 1 -
web-dist/assets/add-DBGs_LmH-DpLM9lGv.js | 1 -
.../admin-outlined-DXTGKZe5-CSnArnXa.js | 1 -
web-dist/assets/airport-DmUdZQah-68aQ4GjS.js | 1 -
.../assets/align-center-kIaj1t0E-DSHMqphX.js | 1 -
.../assets/align-justify-DtkZpgWd-BQKEWNTl.js | 1 -
.../assets/align-left-nz355YSx-D-lOXVaJ.js | 1 -
.../assets/align-right-CuY2aKVp-B5IVFIpK.js | 1 -
web-dist/assets/approve-C2CuyqjZ-BJC-OpBy.js | 1 -
.../arrow-drop-down-C-Cm0O58-BQbfQyoC.js | 1 -
.../assets/blocks-group-BnKCc4Rj-DtG3Oj_8.js | 1 -
web-dist/assets/bold-C7Q6mc6R-W4qoDjlW.js | 1 -
.../assets/caret-right-Buv6m22q-WQMBnvfk.js | 1 -
.../category-outline-DFeZz2a4-CqJmdfxm.js | 1 -
web-dist/assets/check-CwiFW30S-D5xY4LY6.js | 1 -
.../assets/check-one-DZsEj4Rc-D5ek0kT8.js | 1 -
web-dist/assets/config-HpgzD5LZ-CHZjFB5m.js | 1 -
web-dist/assets/content-CVv2xHwr-Cko-e_iv.js | 1 -
web-dist/assets/copy-CVj4__by-DSjUrowX.js | 1 -
.../assets/cube-duotone-C5nZlt1x-DvU0aR3O.js | 1 -
.../assets/date-time-C-XupEct-CJ91Fn1h.js | 1 -
web-dist/assets/delete-B_03_u2H-B4iPfa6w.js | 1 -
web-dist/assets/edit-Dt4jUBOK-lOkX0YCB.js | 1 -
.../assets/error-duotone-C1DxTjTu-DAfaeZ3p.js | 1 -
.../assets/error-outline-BtU6WRxh-DZbxbVEK.js | 1 -
web-dist/assets/exit-BrT4707H-Kqn9ARZ4.js | 1 -
web-dist/assets/filter-DjN42YHn-Db70LXPs.js | 1 -
.../assets/fluent-person-CxE3zAkd-BXa47Cvo.js | 1 -
web-dist/assets/get-text-BQOd1CsX-DUhw41GT.js | 1 -
.../assets/group-work-CMKVD9ib-CqRoZfas.js | 1 -
.../assets/health-circle-SAB-DqvX-BjjqKyAX.js | 1 -
web-dist/assets/history-DwvuvWV7-Bcpk_weY.js | 1 -
web-dist/assets/home-InqRf4oC-D2m0I5nB.js | 1 -
.../horizontal-rule-DqqTWGF1-BpTivvNz.js | 1 -
web-dist/assets/image-CnEjCzXp-z7MLBKjQ.js | 1 -
web-dist/assets/inbox-CQ1akO08-CzpJlaLd.js | 1 -
web-dist/assets/index-BL-ZztvJ.css | 7 -
web-dist/assets/index-De5TXRhh.js | 1545 -----------------
web-dist/assets/italic-DMSQgFnS-DOEZCEZ1.js | 1 -
web-dist/assets/link-KeHiWBJT-CuqIlkZm.js | 1 -
web-dist/assets/link-off-DZAgsSxK-B6xMXQPC.js | 1 -
web-dist/assets/list-Bs6u--UJ-eA9pjrj3.js | 1 -
web-dist/assets/logout-B0mQe5Qi-DF17owpB.js | 1 -
web-dist/assets/loop-dsNm_gaj-DkPa6i0D.js | 1 -
web-dist/assets/more-DOWiYiPH-GRR8ysNy.js | 1 -
web-dist/assets/note-Bqaccb7j-CtYQDrQt.js | 1 -
.../assets/number-symbol--0U5ng1u-DX0-tc7o.js | 1 -
web-dist/assets/org-ct1252nQ-BfTllgJB.js | 1 -
.../assets/people-32-DWkG_AEs-B_1jrXMT.js | 1 -
web-dist/assets/people-BlGM0esi-C_qKpv6V.js | 1 -
.../assets/people-group-DAJyorhy-Dn2EYOeo.js | 1 -
.../assets/people-plus-CaZDHm6f-B7a-LqC-.js | 1 -
.../assets/person-board-CGwlcXCK-B9agoP0y.js | 1 -
.../assets/person-hair-cux4Oez7-BVg-7YyY.js | 1 -
.../assets/person-home-TVkRmIXv-BBpURoUQ.js | 1 -
web-dist/assets/plane-CNSX_xPZ-B35Y6xpd.js | 1 -
.../assets/plane-takeoff-D8MEJ99K-Cl_SEXXf.js | 1 -
web-dist/assets/progress-xq5clHAn-CenFRX2W.js | 1 -
.../assets/radar-chart-kqL_3xwo-DfBIfHEG.js | 1 -
web-dist/assets/react-CwSRowEQ-QgYTcSqt.js | 1 -
web-dist/assets/redo-BlWi9gwZ-CP18WXEp.js | 1 -
.../assets/right-line-CZxB4z-S-C6nFMNve.js | 1 -
.../assets/seal-check-Bzc_Rg44-8y04pjyN.js | 1 -
web-dist/assets/search-D5rwXZnU-BmKuypdd.js | 1 -
web-dist/assets/setting-BWVSKyb7-CGHVVIJN.js | 1 -
web-dist/assets/share-DD20P1bR-CAqP37_K.js | 1 -
web-dist/assets/strike-Db1W3LH4-B4uYXTO1.js | 1 -
.../subject-rounded-RPHxzAM6-E3h55KVy.js | 1 -
web-dist/assets/sum-CP8qw4zJ-C9b5UdlC.js | 1 -
web-dist/assets/target-BQR-JIzR-DeRp7ACo.js | 1 -
.../assets/text-indent-mVfgassO-DqLu7JTK.js | 1 -
.../assets/text-outdent-CzeeK6rs-D_Idhyv0.js | 1 -
web-dist/assets/time-8zVe6vD_-CO9arZM0.js | 1 -
.../assets/underline-BAa1Ttlz-B1xR8ou1.js | 1 -
web-dist/assets/undo-B5Chp__o-BHoJTHTM.js | 1 -
web-dist/assets/user-id-Q2t8rpnY-DhvGaTDn.js | 1 -
web-dist/assets/work-TRqMhsot-B18ZEvZr.js | 1 -
web-dist/assets/zoomin-D7FfpJa4-CzlKcEgh.js | 1 -
web-dist/assets/zoomout-CBVN6dw0-9Fcs0kz7.js | 1 -
web-dist/index.html | 26 -
web-dist/index_BACKUP.html | 27 -
web-dist/logo.svg | 1 -
web-dist/params.json | 2 -
web-dist/placeholder.webp | Bin 1900 -> 0 bytes
web-dist/vite.svg | 1 -
96 files changed, 134 insertions(+), 1865 deletions(-)
delete mode 100644 web-dist/assets/account-location-BCNgMMMw-BzoBAix2.js
delete mode 100644 web-dist/assets/add-DBGs_LmH-DpLM9lGv.js
delete mode 100644 web-dist/assets/admin-outlined-DXTGKZe5-CSnArnXa.js
delete mode 100644 web-dist/assets/airport-DmUdZQah-68aQ4GjS.js
delete mode 100644 web-dist/assets/align-center-kIaj1t0E-DSHMqphX.js
delete mode 100644 web-dist/assets/align-justify-DtkZpgWd-BQKEWNTl.js
delete mode 100644 web-dist/assets/align-left-nz355YSx-D-lOXVaJ.js
delete mode 100644 web-dist/assets/align-right-CuY2aKVp-B5IVFIpK.js
delete mode 100644 web-dist/assets/approve-C2CuyqjZ-BJC-OpBy.js
delete mode 100644 web-dist/assets/arrow-drop-down-C-Cm0O58-BQbfQyoC.js
delete mode 100644 web-dist/assets/blocks-group-BnKCc4Rj-DtG3Oj_8.js
delete mode 100644 web-dist/assets/bold-C7Q6mc6R-W4qoDjlW.js
delete mode 100644 web-dist/assets/caret-right-Buv6m22q-WQMBnvfk.js
delete mode 100644 web-dist/assets/category-outline-DFeZz2a4-CqJmdfxm.js
delete mode 100644 web-dist/assets/check-CwiFW30S-D5xY4LY6.js
delete mode 100644 web-dist/assets/check-one-DZsEj4Rc-D5ek0kT8.js
delete mode 100644 web-dist/assets/config-HpgzD5LZ-CHZjFB5m.js
delete mode 100644 web-dist/assets/content-CVv2xHwr-Cko-e_iv.js
delete mode 100644 web-dist/assets/copy-CVj4__by-DSjUrowX.js
delete mode 100644 web-dist/assets/cube-duotone-C5nZlt1x-DvU0aR3O.js
delete mode 100644 web-dist/assets/date-time-C-XupEct-CJ91Fn1h.js
delete mode 100644 web-dist/assets/delete-B_03_u2H-B4iPfa6w.js
delete mode 100644 web-dist/assets/edit-Dt4jUBOK-lOkX0YCB.js
delete mode 100644 web-dist/assets/error-duotone-C1DxTjTu-DAfaeZ3p.js
delete mode 100644 web-dist/assets/error-outline-BtU6WRxh-DZbxbVEK.js
delete mode 100644 web-dist/assets/exit-BrT4707H-Kqn9ARZ4.js
delete mode 100644 web-dist/assets/filter-DjN42YHn-Db70LXPs.js
delete mode 100644 web-dist/assets/fluent-person-CxE3zAkd-BXa47Cvo.js
delete mode 100644 web-dist/assets/get-text-BQOd1CsX-DUhw41GT.js
delete mode 100644 web-dist/assets/group-work-CMKVD9ib-CqRoZfas.js
delete mode 100644 web-dist/assets/health-circle-SAB-DqvX-BjjqKyAX.js
delete mode 100644 web-dist/assets/history-DwvuvWV7-Bcpk_weY.js
delete mode 100644 web-dist/assets/home-InqRf4oC-D2m0I5nB.js
delete mode 100644 web-dist/assets/horizontal-rule-DqqTWGF1-BpTivvNz.js
delete mode 100644 web-dist/assets/image-CnEjCzXp-z7MLBKjQ.js
delete mode 100644 web-dist/assets/inbox-CQ1akO08-CzpJlaLd.js
delete mode 100644 web-dist/assets/index-BL-ZztvJ.css
delete mode 100644 web-dist/assets/index-De5TXRhh.js
delete mode 100644 web-dist/assets/italic-DMSQgFnS-DOEZCEZ1.js
delete mode 100644 web-dist/assets/link-KeHiWBJT-CuqIlkZm.js
delete mode 100644 web-dist/assets/link-off-DZAgsSxK-B6xMXQPC.js
delete mode 100644 web-dist/assets/list-Bs6u--UJ-eA9pjrj3.js
delete mode 100644 web-dist/assets/logout-B0mQe5Qi-DF17owpB.js
delete mode 100644 web-dist/assets/loop-dsNm_gaj-DkPa6i0D.js
delete mode 100644 web-dist/assets/more-DOWiYiPH-GRR8ysNy.js
delete mode 100644 web-dist/assets/note-Bqaccb7j-CtYQDrQt.js
delete mode 100644 web-dist/assets/number-symbol--0U5ng1u-DX0-tc7o.js
delete mode 100644 web-dist/assets/org-ct1252nQ-BfTllgJB.js
delete mode 100644 web-dist/assets/people-32-DWkG_AEs-B_1jrXMT.js
delete mode 100644 web-dist/assets/people-BlGM0esi-C_qKpv6V.js
delete mode 100644 web-dist/assets/people-group-DAJyorhy-Dn2EYOeo.js
delete mode 100644 web-dist/assets/people-plus-CaZDHm6f-B7a-LqC-.js
delete mode 100644 web-dist/assets/person-board-CGwlcXCK-B9agoP0y.js
delete mode 100644 web-dist/assets/person-hair-cux4Oez7-BVg-7YyY.js
delete mode 100644 web-dist/assets/person-home-TVkRmIXv-BBpURoUQ.js
delete mode 100644 web-dist/assets/plane-CNSX_xPZ-B35Y6xpd.js
delete mode 100644 web-dist/assets/plane-takeoff-D8MEJ99K-Cl_SEXXf.js
delete mode 100644 web-dist/assets/progress-xq5clHAn-CenFRX2W.js
delete mode 100644 web-dist/assets/radar-chart-kqL_3xwo-DfBIfHEG.js
delete mode 100644 web-dist/assets/react-CwSRowEQ-QgYTcSqt.js
delete mode 100644 web-dist/assets/redo-BlWi9gwZ-CP18WXEp.js
delete mode 100644 web-dist/assets/right-line-CZxB4z-S-C6nFMNve.js
delete mode 100644 web-dist/assets/seal-check-Bzc_Rg44-8y04pjyN.js
delete mode 100644 web-dist/assets/search-D5rwXZnU-BmKuypdd.js
delete mode 100644 web-dist/assets/setting-BWVSKyb7-CGHVVIJN.js
delete mode 100644 web-dist/assets/share-DD20P1bR-CAqP37_K.js
delete mode 100644 web-dist/assets/strike-Db1W3LH4-B4uYXTO1.js
delete mode 100644 web-dist/assets/subject-rounded-RPHxzAM6-E3h55KVy.js
delete mode 100644 web-dist/assets/sum-CP8qw4zJ-C9b5UdlC.js
delete mode 100644 web-dist/assets/target-BQR-JIzR-DeRp7ACo.js
delete mode 100644 web-dist/assets/text-indent-mVfgassO-DqLu7JTK.js
delete mode 100644 web-dist/assets/text-outdent-CzeeK6rs-D_Idhyv0.js
delete mode 100644 web-dist/assets/time-8zVe6vD_-CO9arZM0.js
delete mode 100644 web-dist/assets/underline-BAa1Ttlz-B1xR8ou1.js
delete mode 100644 web-dist/assets/undo-B5Chp__o-BHoJTHTM.js
delete mode 100644 web-dist/assets/user-id-Q2t8rpnY-DhvGaTDn.js
delete mode 100644 web-dist/assets/work-TRqMhsot-B18ZEvZr.js
delete mode 100644 web-dist/assets/zoomin-D7FfpJa4-CzlKcEgh.js
delete mode 100644 web-dist/assets/zoomout-CBVN6dw0-9Fcs0kz7.js
delete mode 100644 web-dist/index.html
delete mode 100644 web-dist/index_BACKUP.html
delete mode 100755 web-dist/logo.svg
delete mode 100755 web-dist/params.json
delete mode 100644 web-dist/placeholder.webp
delete mode 100755 web-dist/vite.svg
diff --git a/Dockerfile b/Dockerfile
index 3a9ff79..3d15a41 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,51 +1,23 @@
# 基础镜像
FROM node:18.17-alpine as base
-# 更改 apk 镜像源为阿里云
-# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
-
-# 使用阿里云镜像源 + 完整仓库声明
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
echo "https://mirrors.aliyun.com/alpine/v3.18/community" >> /etc/apk/repositories
-# 安装最新稳定版 PostgreSQL 客户端(15.11)
-RUN apk update --no-cache && \
- apk add --no-cache \
- postgresql15-client \
- libpq \
- readline
-
- RUN apk add --no-cache ffmpeg
-
-# 设置 npm 镜像源
RUN yarn config set registry https://registry.npmmirror.com
-
-# 全局安装 pnpm 并设置其镜像源
RUN yarn global add pnpm && pnpm config set registry https://registry.npmmirror.com
-
-# 设置工作目录
WORKDIR /app
-
-# 复制 pnpm workspace 配置文件
COPY pnpm-workspace.yaml ./
-
-# 首先复制 package.json, package-lock.json 和 pnpm-lock.yaml 文件
COPY package*.json pnpm-lock.yaml* ./
-
COPY tsconfig.base.json .
-# 利用 Docker 缓存机制,如果依赖没有改变则不会重新执行 pnpm install
-#100-500 5-40
+
FROM base As server-build
WORKDIR /app
-COPY packages/common /app/packages/common
-COPY packages/tus /app/packages/tus
-COPY apps/server /app/apps/server
-RUN pnpm config set registry https://registry.npmmirror.com/
-RUN pnpm install --filter common
-RUN pnpm install --filter tus
-RUN pnpm install --filter server
-RUN pnpm --filter common generate && pnpm --filter common build:cjs
+COPY . .
+RUN pnpm install
+RUN pnpm --filter common build
RUN pnpm --filter tus build
+RUN pnpm --filter utils build
RUN pnpm --filter server build
FROM base As server-prod-dep
@@ -55,6 +27,7 @@ COPY packages/tus /app/packages/tus
COPY apps/server /app/apps/server
RUN pnpm install --filter common --prod
RUN pnpm install --filter tus --prod
+RUN pnpm install --filter utils --prod
RUN pnpm install --filter server --prod
@@ -66,10 +39,8 @@ COPY --from=server-build /app/packages/common/dist ./packages/common/dist
COPY --from=server-build /app/packages/tus/dist ./packages/tus/dist
COPY --from=server-build /app/apps/server/dist ./apps/server/dist
COPY apps/server/entrypoint.sh ./apps/server/entrypoint.sh
-
RUN chmod +x ./apps/server/entrypoint.sh
-RUN apk add --no-cache postgresql-client
-
+RUN apk add --no-cache ffmpeg
EXPOSE 3000
diff --git a/apps/web/index.html b/apps/web/index.html
index 31078c2..4af329b 100755
--- a/apps/web/index.html
+++ b/apps/web/index.html
@@ -8,7 +8,7 @@
- test
-
-
-
-
-
-
-
-
-