diff --git a/.env.dev_build b/.env.dev_build index 2affe0c8..89f546aa 100644 --- a/.env.dev_build +++ b/.env.dev_build @@ -1,4 +1,4 @@ -VITE_USER_NODE_ENV = 'development' +VITE_USER_NODE_ENV = 'development_cloud' # VITE_APP_BASE_URL = 'https://aida.com.hk/test' # VITE_APP_BASE_URL = 'http://18.167.251.121:10088' # VITE_APP_BASE_URL = 'https://api.aida.com.hk' diff --git a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js index 02dff910..90ed9080 100644 --- a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js +++ b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js @@ -409,7 +409,7 @@ export class BrushIndicator { // this.show(e.e); this._mouseEnterHandler && this._mouseEnterHandler(e) } else { - // requestIdleCallback(() => { + // setTimeout(() => { // this.updatePosition(e.e); // }); diff --git a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js index b8496609..b77da6d8 100644 --- a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js +++ b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js @@ -133,11 +133,12 @@ export class RedGreenModeManager { this.canvas.on("mouse:up", (event) => { // 可以在这里添加更多逻辑,比如生成图片或更新状态 nextTick(() => { - requestIdleCallback(async () => { + setTimeout(async () => { if (!this.isInitialized) { console.warn("红绿图模式未初始化,无法处理鼠标事件"); return; } + console.log("鼠标抬起事件触发", this.onImageGenerated); if (this.onImageGenerated) { const imageData = await this.canvasManager.exportImage({ restoreOpacityInRedGreen: true, // 恢复红绿图模式下的透明度 diff --git a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js index 3c042817..6dd9667f 100644 --- a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js @@ -37,7 +37,6 @@ export class ThumbnailManager { // 延迟执行,避免阻塞UI fabricObjects.length > 0 && - requestIdleCallback(() => { setTimeout(async () => { const base64 = await this._generateLayerThumbnailNow(fabricObjects, layer); // this.layerThumbnails.set(layerId, base64); @@ -55,7 +54,6 @@ export class ThumbnailManager { console.error("生成图层缩略图时出错:", error); } }); - }); } /** @@ -65,7 +63,7 @@ export class ThumbnailManager { generateAllLayerThumbnails(layers) { if (!layers || !Array.isArray(layers)) return; - requestIdleCallback(() => { + setTimeout(() => { setTimeout(() => { layers.forEach((layer) => { if (layer && layer.id) { diff --git a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js index 15e2f797..f4429bb4 100644 --- a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js +++ b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js @@ -155,7 +155,7 @@ export class LiquifyRealTimeUpdater { // 使用requestAnimationFrame进行批量渲染优化 // if (!this.renderingScheduled && !this.config.skipRenderDuringDrag) { // this.renderingScheduled = true; - // requestIdleCallback(() => { + // setTimeout(() => { // this.canvas.renderAll(); // this.renderingScheduled = false; // }); diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue index ad20795d..13f1f734 100644 --- a/src/component/Detail/model/modelPosition.vue +++ b/src/component/Detail/model/modelPosition.vue @@ -189,11 +189,11 @@ export default defineComponent({ } return { scaleX, scaleY, rotate }; } - const initMoveableForSelected = () => { + const initMoveableForSelected = async (isDestroy:boolean = false) => { // 销毁旧的实例 if(selectItem.imgDomIndex == -1)return - if (moveableInstance.value) { - moveableInstance.value.destroy(); + if (moveableInstance?.value?.destroy && !isDestroy) { + moveableInstance?.value?.destroy(); } const selectedEl = elementRefs.value[selectItem.imgDomIndex]; @@ -509,7 +509,7 @@ export default defineComponent({ watch(()=>detailData.frontBack.front.length,(newValue,oldValue)=>{ if(selectItem.selectDetail?.id)selectItem.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == selectItem.selectDetail?.id) setTimeout(()=>{ - initMoveableForSelected() + initMoveableForSelected(oldValue == 0) },100) }) const setRevocation = async ()=>{ diff --git a/src/router/index.ts b/src/router/index.ts index b3ec8e4d..01bf2611 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -208,7 +208,7 @@ const routes: Array = [ import("@/views/SellerDashboard/MyListings/createSelect/index.vue") }, { - path: "select/:id", + path: "select/:collectionId", name: "myListingsSelectItem", meta: { enter: "all" }, component: () => diff --git a/src/store/index.ts b/src/store/index.ts index 2f977725..923c6f0b 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -7,6 +7,7 @@ import UserHabit from './userHabit/userHabit' import Workspace from './workspace/workspace' import Guide from './guide/guide' import adminPage from './adminPage/adminPage' +import seller from './seller/index' export interface RootState{ } @@ -41,5 +42,6 @@ export default createStore({ Workspace, Guide, adminPage, + seller, } }) diff --git a/src/store/seller/index.d.ts b/src/store/seller/index.d.ts new file mode 100644 index 00000000..3febdb11 --- /dev/null +++ b/src/store/seller/index.d.ts @@ -0,0 +1,6 @@ +export const ApplyStatus = { + Null: null,// 未申请过 + Pending: 0,// 已提交, 待审核 + Approved: 1,// 审核通过 + Rejected: 2,// 审核拒绝 +} \ No newline at end of file diff --git a/src/store/seller/index.ts b/src/store/seller/index.ts new file mode 100644 index 00000000..e8be198b --- /dev/null +++ b/src/store/seller/index.ts @@ -0,0 +1,40 @@ +import { Module } from 'vuex' +import { RootState } from '../index' +import i18n from "@/lang/index"; +import { Https } from '@/tool/https' +import { ApplyStatus } from "./index.d" + +import store from '../index' +interface Seller { + isSeller: boolean, + applyStatus: number, +} + +const seller: Module = { + namespaced: true, + state: { + isSeller: false, + applyStatus: null, + }, + mutations: { + set_isSeller(state: Seller, value: boolean) { + state.isSeller = value + }, + set_applyStatus(state: Seller, value: number) { + state.applyStatus = value + if (value == ApplyStatus.Approved) { + state.isSeller = true + } + }, + }, + + actions: { + get_isSeller({ commit }) { + // Https.axiosGet(Https.httpUrls.checkSellerDesigner).then(rv => { + // commit('set_isSeller', !!rv) + // }) + }, + } +} + +export default seller \ No newline at end of file diff --git a/src/tool/https.js b/src/tool/https.js index 3cfbfa8e..37bd2e8a 100644 --- a/src/tool/https.js +++ b/src/tool/https.js @@ -475,6 +475,12 @@ export const Https = { // 卖家端接口 checkSellerDesigner: '/seller/designer/check', // 检查卖家是否为设计师 + getSellerApplyStatus: '/seller/designer/apply/status', // 获取卖家申请状态 + submitSellerApply: '/seller/designer/apply', // 提交卖家申请 + getSellerOrderSummary: '/seller/order/summary', // 获取卖家订单数据总览 + getSellerOrderList: '/seller/order/page', // 获取卖家订单列表 + getListingPopup: '/seller/listing/popup/check', // 获取是否勾选发布作品提示 + setListingPopup: '/seller/listing/popup/set', // 设置是否勾选发布作品提示 }, diff --git a/src/tool/util.js b/src/tool/util.js index 1111bca4..0b82f3b9 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -684,28 +684,28 @@ function isValidUrl(string) { } export { - isEmail, - getUploadUrl, - getUniversalZoomLevel, - rgbaToHex, - getMinioUrl, - base64ToFile, - dataURLtoFile, - blobToFile, - base64toFile, - rgbToHsv, - formatTime, - dataURLtoBlob, - isMoible, - downloadIamge, - downloadVideoWithFetch, - getBrowserInfo, - setPubDate, - murmur, - setGradual, - calculateGradientCoordinate, - segmentImage, - UrlToFile, - sketchToMask, + isEmail, + getUploadUrl, + getUniversalZoomLevel, + rgbaToHex, + getMinioUrl, + base64ToFile, + dataURLtoFile, + blobToFile, + base64toFile, + rgbToHsv, + formatTime, + dataURLtoBlob, + isMoible, + downloadIamge, + downloadVideoWithFetch, + getBrowserInfo, + setPubDate, + murmur, + setGradual, + calculateGradientCoordinate, + segmentImage, + UrlToFile, + sketchToMask, isValidUrl } \ No newline at end of file diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue index 99511844..d5f9a7a7 100644 --- a/src/views/HomeMain.vue +++ b/src/views/HomeMain.vue @@ -373,11 +373,11 @@ {{ $t('Header.ViewOrders') }} -
+
{{ $t('Header.BecomeSeller') }}
-
+
{{ $t('Header.SellerDashboard') }} @@ -1073,9 +1073,13 @@ export default defineComponent({ } } + const isSeller = computed(() => { + return store.state.seller.isSeller + }) return { store, userDetail, + isSeller, t, ...toRefs(homeMainData), ...toRefs(historyData), @@ -1150,6 +1154,7 @@ export default defineComponent({ reject() }) }) + this.store.dispatch('seller/get_isSeller')//获取是否是卖家 let isMurmur = getCookie('isMurmur') //获取是否是试用用户 this.isMurmur = JSON.parse(isMurmur) if (this.userDetail.userId && this.userDetail.userId > -1) { @@ -1215,7 +1220,6 @@ export default defineComponent({ let payOrder = this.$refs.payOrder payOrder.init(orderId) } - this.getCheckSellerDesigner() }, methods: { setTask(data) { @@ -1379,21 +1383,6 @@ export default defineComponent({ this.store.commit('set_dataLoading', false) }) }, - //获取是否为卖家 - getCheckSellerDesigner() { - const config = { - params: { - userId: this.userDetail.userId - } - } - Https.axiosGet(Https.httpUrls.checkSellerDesigner, config).then(rv => { - if (rv) { - console.log(rv) - return rv - } - return null - }) - }, setLocale(v) { // 同步更新 localStorage 中的 loginLanguage if (v) { diff --git a/src/views/SellerDashboard/BecomeSeller/index.vue b/src/views/SellerDashboard/BecomeSeller/index.vue index 3b738b49..d651beb0 100644 --- a/src/views/SellerDashboard/BecomeSeller/index.vue +++ b/src/views/SellerDashboard/BecomeSeller/index.vue @@ -5,8 +5,8 @@ tip="Join the Stylish Parade and start selling your design work" />
- - + +
@@ -16,7 +16,20 @@ import sellerHeader from "../seller-header.vue" import sellerReview from "./sellerReview.vue" import sellerApply from "./sellerApply.vue" - const isSubmit = ref(false) + import { Https } from "@/tool/https" + import { useStore } from "vuex" + import { ApplyStatus } from "@/store/seller/index.d" + const store = useStore() + const applyStatus = computed(() => store.state.seller.applyStatus) + const onSubmit = () => store.commit("seller/set_applyStatus", ApplyStatus.Pending) + const getSellerApplyStatus = () => { + store.commit("set_loading", true) + Https.axiosGet(Https.httpUrls.getSellerApplyStatus).then((res) => { + store.commit("set_loading", false) + store.commit("seller/set_applyStatus", res) + }) + } + getSellerApplyStatus()