diff --git a/prod_build_manual.yaml b/prod_build_manual.yaml new file mode 100644 index 00000000..dfb35102 --- /dev/null +++ b/prod_build_manual.yaml @@ -0,0 +1,53 @@ +name: AiDA WEB-Node.js StableVersion 分支构建部署 +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 18.18.0 ] + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: StableVersion + + - name: 2.打印当前分支信息 + run: | + echo "Current branch being deployed is: $(git rev-parse --abbrev-ref HEAD)" + echo "The code is from the 'main' branch, as specified in 'actions/checkout'." + + - name: 3.设置 Node.js 环境 ${{ matrix.node-version }} + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm run build + - run: ls -l + + - name: 3.5. 手动安装 AWS CLI v2 # 新增步骤:确保 aws 命令可用 + run: | + echo "安装 AWS CLI V2..." + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + sudo ./aws/install --update + aws --version + echo "AWS CLI V2 安装完成。" + + - name: 4.配置 AWS 凭证 + uses: aws-actions/configure-aws-credentials@main + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: 'ap-east-1' + + - name: 5.同步 dist 目录到 S3 + run: | + aws s3 sync dist/ s3://${{ secrets.S3_BUCKET_NAME }}/ --acl public-read + + - name: 6.部署完成 + run: echo "构建和部署到 S3 任务完成。" \ No newline at end of file diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue index eecafc6f..df61599f 100644 --- a/src/component/Canvas/CanvasEditor/index.vue +++ b/src/component/Canvas/CanvasEditor/index.vue @@ -902,7 +902,7 @@ const changeCanvas = async (command) => { ...command, // 传递完整的命令数据 }; emit("changeCanvas", commandData); - if (command.canUndo || command.canRedo) { + if ((command.canUndo || command.canRedo) && props.enabledRedGreenMode) { setTimeout(async () => { const imageData = await canvasManager.exportImage({ restoreOpacityInRedGreen: true, // 恢复红绿图模式下的透明度 diff --git a/src/component/Canvas/CanvasEditor/managers/ExportManager.js b/src/component/Canvas/CanvasEditor/managers/ExportManager.js index 14bca2bd..6ee777fe 100644 --- a/src/component/Canvas/CanvasEditor/managers/ExportManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ExportManager.js @@ -555,23 +555,17 @@ export class ExportManager { ); } - // 获取固定图层对象的边界矩形(包含位置、尺寸、缩放等信息) - const fixedBounds = fixedLayerObject?.getBoundingRect?.(); - // 使用固定图层的实际显示尺寸作为导出画布尺寸 - const canvasWidth = Math.round(fixedBounds.width); - const canvasHeight = Math.round(fixedBounds.height); + const canvasWidth = Math.round(fixedLayerObject.width * fixedLayerObject.scaleX); + const canvasHeight = Math.round(fixedLayerObject.height * fixedLayerObject.scaleY); console.log(`红绿图模式导出,画布尺寸: ${canvasWidth}x${canvasHeight}`); - console.log("固定图层边界:", fixedBounds); // 创建固定尺寸的临时画布 const scaleFactor = 2; // 高清导出 const tempCanvas = document.createElement("canvas"); tempCanvas.width = canvasWidth * scaleFactor; tempCanvas.height = canvasHeight * scaleFactor; - tempCanvas.style.width = canvasWidth + "px"; - tempCanvas.style.height = canvasHeight + "px"; const tempFabricCanvas = new fabric.StaticCanvas(tempCanvas, { width: canvasWidth, @@ -584,8 +578,7 @@ export class ExportManager { try { // 获取裁剪路径对象(如果存在) - const clipPathObject = await this._getClipPathObject(fixedBounds); - + const clipPathObject = await this._getClipPathObject(fixedLayerObject); // 克隆并添加所有对象到临时画布,需要调整位置相对于固定图层 for (let i = 0; i < objectsToExport.length; i++) { const obj = objectsToExport[i]; @@ -594,19 +587,20 @@ export class ExportManager { restoreOpacityInRedGreen && true ); if (cloned) { - // 调整对象位置:将原画布坐标转换为以固定图层为原点的相对坐标 cloned.set({ - left: cloned.left - fixedBounds.left, - top: cloned.top - fixedBounds.top, + left: 0, + top: 0, + originX: "left", + originY: "top", }); // 更新对象坐标 cloned.setCoords(); // 设置裁剪路径到对象 - if (clipPathObject) { - cloned.clipPath = clipPathObject; - } + // if (clipPathObject) { + // cloned.clipPath = clipPathObject; + // } tempFabricCanvas.add(cloned); } diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue index a44e31ad..4b14e789 100644 --- a/src/component/Detail/canvas/index.vue +++ b/src/component/Detail/canvas/index.vue @@ -230,7 +230,7 @@ export default defineComponent({ let size = { ...detailData.canvasConfig, } - + store.commit('DesignDetail/updataDetailItem',{maskUrl:value}) segmentImage(value,full,size).then(async (rv)=>{ let front = detailData.frontBack.front[detailData.imgDomIndex] let back = detailData.frontBack.back[detailData.imgDomIndex] @@ -243,7 +243,7 @@ export default defineComponent({ let base64 = await resizeImageWithNativeCanvas(front.oldMaskUrl,value) front.maskUrl = base64 back.imageUrl = rv.targetBackUrl - store.commit('DesignDetail/updataDetailItem',{maskUrl:value}) + // store.commit('DesignDetail/updataDetailItem',{maskUrl:value}) }) } diff --git a/src/component/HomePage/Cropper.vue b/src/component/HomePage/Cropper.vue index f6d9661a..4988b3db 100644 --- a/src/component/HomePage/Cropper.vue +++ b/src/component/HomePage/Cropper.vue @@ -30,7 +30,7 @@ :outputSize="option.size" :outputType="option.outputType" :auto-crop="option.autoCrop" - :fixedBox="isRound" + :fixedBox="!isRound" :movable="true" :fixed="isRound" :auto-crop-width="option.autoCropWidth" @@ -333,7 +333,6 @@ export default defineComponent({ .cut_picture_review_block{ width: 100%; height: calc(100% - 6.8rem*1.2); - min-height: calc(100% - 6.8rem*1.2); margin: 0 auto; .next_step_button{ margin-top: 2rem; diff --git a/src/component/home/design/collection/PrintboardUpload.vue b/src/component/home/design/collection/PrintboardUpload.vue index 636a7412..531b3782 100644 --- a/src/component/home/design/collection/PrintboardUpload.vue +++ b/src/component/home/design/collection/PrintboardUpload.vue @@ -145,7 +145,7 @@ - +