From 3adf14eac95ee1937f04e78e8b29798438677a46 Mon Sep 17 00:00:00 2001
From: louis <869322496@qq.com>
Date: Fri, 1 Mar 2024 17:23:37 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=81=E8=A3=85=E9=99=84=E4=BB=B6?=
=?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=85=AC=E5=85=B1=E7=BB=84=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Dockerfile | 18 ++++++-
Dockerfile copy | 53 -------------------
src/components/business/README.md | 6 ++-
.../business/attachment-upload/columns.tsx} | 0
.../business/attachment-upload/index.vue} | 8 +--
src/views/contract/index.vue | 10 ++--
6 files changed, 31 insertions(+), 64 deletions(-)
delete mode 100644 Dockerfile copy
rename src/{views/contract/upload-columns.tsx => components/business/attachment-upload/columns.tsx} (100%)
rename src/{views/contract/upload-contract.vue => components/business/attachment-upload/index.vue} (96%)
diff --git a/Dockerfile b/Dockerfile
index 9978e2c..f5a8d30 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,7 +13,23 @@ COPY . ./
# 安装依赖
# 若网络不通,可以使用淘宝源
# RUN pnpm config set registry https://registry.npmmirror.com
-RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install
+# see https://pnpm.io/docker
+FROM builder AS prod-deps
+RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
+
+FROM builder AS build
+RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
+RUN pnpm run build
+
+
+# mirror acceleration
+# RUN npm config set registry https://registry.npmmirror.com
+# RUN pnpm config set registry https://registry.npmmirror.com
+# RUN npm config rm proxy && npm config rm https-proxy
+
+FROM builder
+COPY --from=prod-deps $PROJECT_DIR/node_modules $PROJECT_DIR/node_modules
+COPY --from=build $PROJECT_DIR/dist $PROJECT_DIR/dist
# 构建项目
ENV VITE_BASE_URL=/
diff --git a/Dockerfile copy b/Dockerfile copy
deleted file mode 100644
index 58a6897..0000000
--- a/Dockerfile copy
+++ /dev/null
@@ -1,53 +0,0 @@
-# 遇到网络问题可以配置镜像加速:https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
-# FROM 表示设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载。
-# 指定我们的基础镜像是node,latest表示版本是最新, 如果要求空间极致,可以选择lts-alpine
-# 使用 as 来为某一阶段命名
-FROM node:20-slim AS base
-
-ENV PROJECT_DIR=/huaxin-admin \
- DB_HOST=mysql \
- APP_PORT=7001 \
- PNPM_HOME="/pnpm" \
- PATH="$PNPM_HOME:$PATH"
-
-
-RUN corepack enable \
- && yarn global add pm2
-
-# WORKDIR指令用于设置Dockerfile中的RUN、CMD和ENTRYPOINT指令执行命令的工作目录(默认为/目录),该指令在Dockerfile文件中可以出现多次,
-# 如果使用相对路径则为相对于WORKDIR上一次的值,
-# 例如WORKDIR /data,WORKDIR logs,RUN pwd最终输出的当前目录是/data/logs。
-# cd 到 /huaxin-admin
-WORKDIR $PROJECT_DIR
-COPY ./ $PROJECT_DIR
-RUN chmod +x ./wait-for-it.sh
-
-# set timezone
-RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
- && echo 'Asia/Shanghai' > /etc/timezone
-
-# see https://pnpm.io/docker
-FROM base AS prod-deps
-RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
-
-FROM base AS build
-RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
-RUN pnpm run build
-
-
-# mirror acceleration
-# RUN npm config set registry https://registry.npmmirror.com
-# RUN pnpm config set registry https://registry.npmmirror.com
-# RUN npm config rm proxy && npm config rm https-proxy
-
-FROM base
-COPY --from=prod-deps $PROJECT_DIR/node_modules $PROJECT_DIR/node_modules
-COPY --from=build $PROJECT_DIR/dist $PROJECT_DIR/dist
-
-# EXPOSE port
-EXPOSE $APP_PORT
-
-# 容器启动时执行的命令,类似npm run start
-# CMD ["pnpm", "start:prod"]
-# CMD ["pm2-runtime", "ecosystem.config.js"]
-ENTRYPOINT ./wait-for-it.sh $DB_HOST:$DB_PORT -- pm2-runtime ecosystem.config.js
diff --git a/src/components/business/README.md b/src/components/business/README.md
index f224398..b673546 100644
--- a/src/components/business/README.md
+++ b/src/components/business/README.md
@@ -1,5 +1,7 @@
### 业务组件(目录说明)
-1.AttachmentManage不同的业务调用该组件需要传入该业务数据link的文件ids,需要传入unlink文件的方法,只是解除关联,文件实际还在服务器上没有删除,如果想要物理删除文件,需要到存储管理中去删除。
-
+1.AttachmentManage
+不同的业务调用该组件需要传入该业务数据link的文件ids,需要传入unlink文件的方法,只是解除关联,文件实际还在服务器上没有删除,如果想要物理删除文件,需要到存储管理中去删除。
+2.AttachmentUpload
+不同的业务去上传附件。需要传入一个afterUploadCallback去接收上传到storage的文件ids,并自己关联业务数据
#### 与业务强耦合的组件可以放这里
diff --git a/src/views/contract/upload-columns.tsx b/src/components/business/attachment-upload/columns.tsx
similarity index 100%
rename from src/views/contract/upload-columns.tsx
rename to src/components/business/attachment-upload/columns.tsx
diff --git a/src/views/contract/upload-contract.vue b/src/components/business/attachment-upload/index.vue
similarity index 96%
rename from src/views/contract/upload-contract.vue
rename to src/components/business/attachment-upload/index.vue
index ce69a48..2306ac2 100644
--- a/src/views/contract/upload-contract.vue
+++ b/src/components/business/attachment-upload/index.vue
@@ -12,16 +12,19 @@
-
+