diff --git a/dist.7z b/dist.7z deleted file mode 100644 index 866b68e7..00000000 Binary files a/dist.7z and /dev/null differ 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/public/image/toolsGuide/detailCN.png b/public/image/toolsGuide/detailCN.png new file mode 100644 index 00000000..22b87e78 Binary files /dev/null and b/public/image/toolsGuide/detailCN.png differ diff --git a/public/image/toolsGuide/detailEN.png b/public/image/toolsGuide/detailEN.png new file mode 100644 index 00000000..a12455a5 Binary files /dev/null and b/public/image/toolsGuide/detailEN.png differ diff --git a/src/App.vue b/src/App.vue index 6923d861..43d9d486 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,16 @@ + + \ No newline at end of file +.plan_list { + margin-top: 1rem; + display: flex; + // flex-wrap: wrap; + padding-left: 2.8rem; + column-gap: 0.6rem; + margin-bottom: 2rem; + .plan_item { + height: 4rem; + width: auto; + min-width: 10rem; + display: flex; + align-items: center; + justify-content: center; + // font-size: 1.8rem; + + font-weight: 600; + border-radius: 1.3rem; + color: #fff; + cursor: pointer; + border: 1.8px solid #000; + background-color: #000; + padding: 0 1rem 0 2rem; + + &:hover { + color: #000; + background-color: #fff; + } + + &.active { + background: #ffffff; + color: #000000; + } + + &.disabled { + opacity: 0.5; + cursor: not-allowed; + background-color: #d9d9d9; + border-color: #d9d9d9; + color: #999; + + &:hover { + background-color: #d9d9d9; + color: #999; + } + } + } + + .plan_item { + column-gap: 0.6rem; + } + + .plan_more_icon { + font-size: 1.6rem; + cursor: pointer; + } +} +.subscription-plan-cell { + display: flex; + align-items: center; + justify-content: center; +} +.rename-plan-form { + padding: 2rem 0; + .admin_state_item { + display: flex; + align-items: center; + > span { + width: 10rem; + margin-right: 1rem; + } + } +} + diff --git a/src/component/Administrator/subscriptionPlan.vue b/src/component/Administrator/subscriptionPlan.vue new file mode 100644 index 00000000..e0bf2077 --- /dev/null +++ b/src/component/Administrator/subscriptionPlan.vue @@ -0,0 +1,1037 @@ + + + + + diff --git a/src/component/Canvas/CanvasEditor/managers/ExportManager.js b/src/component/Canvas/CanvasEditor/managers/ExportManager.js index ae398bfd..58514887 100644 --- a/src/component/Canvas/CanvasEditor/managers/ExportManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ExportManager.js @@ -585,7 +585,6 @@ export class ExportManager { restoreOpacityInRedGreen && true ); if (cloned) { - // 调整对象位置:将原画布坐标转换为以固定图层为原点的相对坐标 cloned.set({ left: canvasWidth / 2, top: canvasHeight / 2, diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue index d887d1a2..4b63b4d4 100644 --- a/src/component/Detail/DesignDetail.vue +++ b/src/component/Detail/DesignDetail.vue @@ -61,7 +61,7 @@
-
+
+ +
+
@@ -128,17 +137,18 @@ import { useI18n } from 'vue-i18n' import addDetails from '@/component/Detail/addDetails.vue' export default defineComponent({ components:{ - detailLeft,model,detailRight,canvasBox + detailLeft,model,detailRight,canvasBox,addDetails }, emits:['destroy'], setup(props,{emit}) { const store = useStore(); - + const {locale} = useI18n() const detailDom = reactive({ model:null, canvasBox, detailRight, detailLeft:null as any, + addDetails:null as any, }) const userDetail = computed(()=>{ return store.state.UserHabit.userDetail @@ -506,6 +516,17 @@ export default defineComponent({ sessionStorage.setItem('revocation', JSON.stringify(revocation)); sessionStorage.setItem('oppositeRevocation',JSON.stringify([])); } + + const addDetail = () =>{ + let addDetails:any = detailDom.addDetails + addDetails.init(detailData.selectDetail,'') + } + const setSloganData = (data:any)=>{ + detailData.selectDetail.sketchString = data + if(detailData.currentDetailType == 'sketch' && detailData.selectDetail?.newDetail?.sketch){ + detailData.selectDetail.newDetail.sketch = null + } + } onMounted(()=>{ window.addEventListener('resize', handleResize); }) @@ -518,6 +539,7 @@ export default defineComponent({ }) return{ + locale, ...toRefs(detailDom), ...toRefs(detailData), closeModal, @@ -531,6 +553,8 @@ export default defineComponent({ canvasReload, modelOnLoad, sketchSysToLibrary, + addDetail, + setSloganData, } }, diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue index ce1ec6cb..0f6216c7 100644 --- a/src/component/Detail/canvas/index.vue +++ b/src/component/Detail/canvas/index.vue @@ -238,7 +238,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] @@ -251,7 +251,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/Detail/detailLeft/colorBox/index.vue b/src/component/Detail/detailLeft/colorBox/index.vue index d466e6a0..6607ff37 100644 --- a/src/component/Detail/detailLeft/colorBox/index.vue +++ b/src/component/Detail/detailLeft/colorBox/index.vue @@ -141,6 +141,7 @@ export default defineComponent({ JSON.stringify(colorData.selectDetail.color.gradient) == JSON.stringify(color?.gradient) && colorData.selectDetail.color.rgba?.r ){ + console.log('---',index) isNoSelect = true colorData.selectColor = item colorData.colorList.index = index @@ -160,8 +161,8 @@ export default defineComponent({ if(color?.gradient){ item.gradient = color?.gradient } - colorData.colorList.index = index - colorData.selectColor = item + // colorData.colorList.index = index + // colorData.selectColor = item } colorData.colorList.list[newVal].push(item) } diff --git a/src/component/Detail/detailLeft/index.vue b/src/component/Detail/detailLeft/index.vue index 37c64ef5..e97c4ed0 100644 --- a/src/component/Detail/detailLeft/index.vue +++ b/src/component/Detail/detailLeft/index.vue @@ -6,7 +6,6 @@ -
- - \ No newline at end of file +}) + + diff --git a/src/component/LibraryPage/brandDetail.vue b/src/component/LibraryPage/brandDetail.vue index 47c97c2e..6470d71f 100644 --- a/src/component/LibraryPage/brandDetail.vue +++ b/src/component/LibraryPage/brandDetail.vue @@ -41,7 +41,7 @@
-
+
@@ -21,7 +21,7 @@ props: { text: { type: String, - default: 'Sign in with Google' + default: '' } }, setup(props, { emit }) { @@ -108,6 +108,9 @@ const toGmailLogin = ()=>{ message.info(t('account.canNotUtilize')) } + const displayText = computed(() => { + return props.text || t('Login.LoginWithGoogle') + }) onBeforeUnmount(()=>{ var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`); if(existingScript){ @@ -120,6 +123,7 @@ }) return { toGmailLogin, + displayText, } }, }) diff --git a/src/component/LoginPage/login/enterprise.vue b/src/component/LoginPage/login/enterprise.vue index 278a90ea..c2265558 100644 --- a/src/component/LoginPage/login/enterprise.vue +++ b/src/component/LoginPage/login/enterprise.vue @@ -9,14 +9,14 @@