From 8a9e7205eb5f540a861e17746d0fe01b79dc3ba8 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Wed, 15 Apr 2026 10:57:58 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20=E5=BC=80=E6=94=BEevent=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/json/events.json | 5 +++++ src/assets/json/events_cn.json | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/assets/json/events.json b/src/assets/json/events.json index dc3f0e15..85c53e11 100644 --- a/src/assets/json/events.json +++ b/src/assets/json/events.json @@ -9,6 +9,11 @@ "id": 2, "title": "AiDA X SFT AI Fashion Award 2024", "imgUrl": "/image/events/Fashion-Award-2024.png" + }, + { + "id": 3, + "title": "AiDA Global Design Awards 2026", + "imgUrl": "/image/events/award-poster.gif" } ], "eventsItem": [ diff --git a/src/assets/json/events_cn.json b/src/assets/json/events_cn.json index c582bbe1..a3589714 100644 --- a/src/assets/json/events_cn.json +++ b/src/assets/json/events_cn.json @@ -9,6 +9,11 @@ "id": 2, "title": "AiDA X SFT AI时尚设计比赛2024", "imgUrl": "/image/events/Fashion-Award-2024.png" + }, + { + "id": 3, + "title": "AiDA全球设计奖 2026", + "imgUrl": "/image/events/award-poster-zh.gif" } ], "eventsItem": [ From f56718e93a737e5b5871fae0fedea1666f006b34 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Wed, 15 Apr 2026 13:16:35 +0800 Subject: [PATCH 02/10] =?UTF-8?q?feat:=20=E7=B3=BB=E7=BB=9F=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=A6=82=E6=9E=9C=E6=98=AF=E4=B8=80=E4=B8=AA=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E5=88=99=E7=9B=B4=E6=8E=A5=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Account/message/system.vue | 9 ++++++++- src/tool/util.js | 14 +++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/component/Account/message/system.vue b/src/component/Account/message/system.vue index 8795031f..3b98a772 100644 --- a/src/component/Account/message/system.vue +++ b/src/component/Account/message/system.vue @@ -32,6 +32,7 @@ import { Https } from "@/tool/https"; import { useRouter,useRoute } from 'vue-router' import { useStore } from "vuex"; import { useI18n } from 'vue-i18n' +import { isValidUrl } from '@/tool/util'; export default defineComponent({ components:{ }, @@ -70,7 +71,13 @@ export default defineComponent({ accountMessage.isNoData = true }) } - let setRead = (item:any)=>{ + let setRead = (item: any) => { + const content = item.content.content + console.log('111', isValidUrl(content)); + if (isValidUrl(content)) { + window.open(content, '_blank'); + } + prop.setReadStatus(item).then((rv:any)=>{ item.isRead = 1 }).catch((err:any)=>{ diff --git a/src/tool/util.js b/src/tool/util.js index b8f095c7..1111bca4 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -672,6 +672,17 @@ function sketchToMask(sketchImage) { img.src = sketchImage; }); } + +function isValidUrl(string) { + try { + const url = new URL(string) + // 通常我们只需要 http 或 https 协议 + return url.protocol === "http:" || url.protocol === "https:" + } catch (err) { + return false + } +} + export { isEmail, getUploadUrl, @@ -695,5 +706,6 @@ export { calculateGradientCoordinate, segmentImage, UrlToFile, - sketchToMask + sketchToMask, + isValidUrl } \ No newline at end of file From 0985a004def023b7be6fa33dd8479a048be89899 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Wed, 15 Apr 2026 13:40:32 +0800 Subject: [PATCH 03/10] =?UTF-8?q?feat:=20dev=E8=B7=B3=E8=BD=AC=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Account/message/system.vue | 1 - src/component/Events/eventsDetail.vue | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/component/Account/message/system.vue b/src/component/Account/message/system.vue index 3b98a772..37ddb82a 100644 --- a/src/component/Account/message/system.vue +++ b/src/component/Account/message/system.vue @@ -73,7 +73,6 @@ export default defineComponent({ } let setRead = (item: any) => { const content = item.content.content - console.log('111', isValidUrl(content)); if (isValidUrl(content)) { window.open(content, '_blank'); } diff --git a/src/component/Events/eventsDetail.vue b/src/component/Events/eventsDetail.vue index 2b1d378b..83fd6c5f 100644 --- a/src/component/Events/eventsDetail.vue +++ b/src/component/Events/eventsDetail.vue @@ -122,9 +122,13 @@ export default defineComponent({ const openDetail = () => { let language = locale.value === "ENGLISH" ? "en" : "zh" let url = `https://aida-global-design-awards.com.hk/${language}` + // 如果是dev环境把域名换成http://192.168.31.198 + if (process.env.NODE_ENV === "development") { + url = `http://192.168.31.198:8088/${language}` + } window.open(url, "_blank") - // router.push("/award/index") + // router.push("/award/index") } onMounted(() => { const currentLocale = locale.value From ce0f9f0bbf4f04bdb4e23a315775b2c4fe084e13 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Wed, 15 Apr 2026 15:01:56 +0800 Subject: [PATCH 04/10] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E8=B7=B3=E8=BD=ACaward=E6=90=BA=E5=B8=A6dev=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Account/message/system.vue | 191 +++++++++++++---------- src/component/Events/eventsDetail.vue | 5 +- 2 files changed, 112 insertions(+), 84 deletions(-) diff --git a/src/component/Account/message/system.vue b/src/component/Account/message/system.vue index 37ddb82a..e0b4c6aa 100644 --- a/src/component/Account/message/system.vue +++ b/src/component/Account/message/system.vue @@ -1,22 +1,37 @@ diff --git a/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue b/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue new file mode 100644 index 00000000..3b5129f2 --- /dev/null +++ b/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/views/SellerDashboard/MyListings/EditDetail/index.vue b/src/views/SellerDashboard/MyListings/EditDetail/index.vue index 72204ee6..9ca2e115 100644 --- a/src/views/SellerDashboard/MyListings/EditDetail/index.vue +++ b/src/views/SellerDashboard/MyListings/EditDetail/index.vue @@ -14,16 +14,16 @@
-
+
- {{ $t(`SellerListEdit.${type}`) }} + {{ topImageTitleMap[type] }}
-
+
-
+
From ddb7a366b5f90ace4d6d5693bae62851f87aef65 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Thu, 16 Apr 2026 15:58:22 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9loding=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/style/style.css | 26 +++++++++++++++---- src/assets/style/style.less | 4 +-- .../Detail/detailRight/editPrintElement.vue | 8 +++--- .../MyListings/main/deleteDrafts.vue | 4 +-- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/assets/style/style.css b/src/assets/style/style.css index 8f96aae1..f0fdfaf8 100644 --- a/src/assets/style/style.css +++ b/src/assets/style/style.css @@ -1251,8 +1251,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte border-color: #000 !important; } .ant-spin .ant-spin-dot { - width: 1.5em; - height: 1.5em; + width: 4.5rem; + height: 4.5rem; } .ant-spin-dot-item { background-color: #000000 !important; @@ -2470,6 +2470,22 @@ textarea:focus { opacity: 0.8; border-radius: 0.7rem; } +.mini-scrollbar::-webkit-scrollbar { + width: 0.4rem; +} +.mini-scrollbar::-webkit-scrollbar-thumb { + border-radius: 0.4rem; + background: rgba(0, 0, 0, 0.2); +} +.mosaic-bg { + --mosaic-bg-size: 1rem; + --mosaic-bg-color1: #efefef; + --mosaic-bg-color2: #fff; + background-image: repeating-conic-gradient(var(--mosaic-bg-color1) 0% 25%, var(--mosaic-bg-color2) 0% 50%); + background-repeat: repeat; + background-position: 50% 50%; + background-size: var(--mosaic-bg-size) var(--mosaic-bg-size); +} .mark_loading { position: fixed; width: 100%; @@ -2507,6 +2523,6 @@ textarea:focus { .justify-center { justify-content: center; } -.flex-1{ - flex: 1; -} \ No newline at end of file +.flex-1 { + flex: 1; +} diff --git a/src/assets/style/style.less b/src/assets/style/style.less index 146addd3..31f19666 100644 --- a/src/assets/style/style.less +++ b/src/assets/style/style.less @@ -1379,8 +1379,8 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte } //loding样式 .ant-spin .ant-spin-dot{ - width: 1.5em; - height: 1.5em; + width: 4.5rem; + height: 4.5rem; } .ant-spin-dot-item{ background-color: #000000 !important; diff --git a/src/component/Detail/detailRight/editPrintElement.vue b/src/component/Detail/detailRight/editPrintElement.vue index 22a20bf8..77bb10b7 100644 --- a/src/component/Detail/detailRight/editPrintElement.vue +++ b/src/component/Detail/detailRight/editPrintElement.vue @@ -233,10 +233,10 @@ export default defineComponent({ let sketchH = editPrintElementData.sketchWH.height * editPrintElementData.sketchWH.scale[1] let x = sketchW / 2 - (sketchW * (width / editPrintElementData.sketchWH.width)/2) let y = sketchH / 2 -(sketchH * height/2) - if(editPrintElementData.stateOverallSingle !== 'single'){ - x = sketchW / 2 - y = sketchH / 2 - } + // if(editPrintElementData.stateOverallSingle !== 'single'){ + // x = sketchW / 2 + // y = sketchH / 2 + // } let location = [x,y] resolve({scale,location}) } diff --git a/src/views/SellerDashboard/MyListings/main/deleteDrafts.vue b/src/views/SellerDashboard/MyListings/main/deleteDrafts.vue index acf53ee0..04287917 100644 --- a/src/views/SellerDashboard/MyListings/main/deleteDrafts.vue +++ b/src/views/SellerDashboard/MyListings/main/deleteDrafts.vue @@ -20,8 +20,8 @@ const fun = ref(null) let deleteDraftsRef = ref(null) -const open = (fun)=>{ - fun.value = fun +const open = (deleteFun)=>{ + fun.value = deleteFun emit('update:visible', true) } From 44abb1b1eecd31541ffa29afe77cb358b75c0a35 Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Thu, 16 Apr 2026 16:55:52 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=8B=96=E6=8B=BD=E4=BA=92=E8=A1=A5=E5=B9=B2=E6=89=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/SellerDashboard/MyListings/main/content.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/SellerDashboard/MyListings/main/content.vue b/src/views/SellerDashboard/MyListings/main/content.vue index 601c05bf..ac133e37 100644 --- a/src/views/SellerDashboard/MyListings/main/content.vue +++ b/src/views/SellerDashboard/MyListings/main/content.vue @@ -245,7 +245,7 @@ const { showDrafts } = toRefs(data); v-bind="config" :group="{ name: 'sortable', - pull: true, + pull: false, put: true }" > From 9e12d54540f8c9f26f3005fffaacae9c67d5a752 Mon Sep 17 00:00:00 2001 From: zhangyahui Date: Thu, 16 Apr 2026 17:31:31 +0800 Subject: [PATCH 10/10] =?UTF-8?q?feat:=20=E6=8F=90=E4=BA=A4=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lang/cn.ts | 12 +++ src/lang/en.ts | 12 +++ src/router/index.ts | 7 ++ .../MyListings/EditDetail/Status.vue | 78 +++++++++++++++++++ .../EditDetail/components/Radio.vue | 38 ++++++++- .../MyListings/EditDetail/index.vue | 71 +++++++++++------ 6 files changed, 194 insertions(+), 24 deletions(-) create mode 100644 src/views/SellerDashboard/MyListings/EditDetail/Status.vue diff --git a/src/lang/cn.ts b/src/lang/cn.ts index 37b6aaa2..49a44244 100644 --- a/src/lang/cn.ts +++ b/src/lang/cn.ts @@ -1748,5 +1748,17 @@ export default { productImageSubTitle:' (来自设计集)', apparelSketchTitle:'服装线稿图 ', apparelSketchSubTitle:' (来自设计集)', + productName:'商品名称', + price:'价格', + productDescription:'商品描述', + designFor:'目标人群', + productCategory:'商品类别', + categoryTips:'请选择所有适用选项', + policy:'默认情况下,所有销售均遵循平台的许可政策——买家在下载后将获得使用许可', + learnMore:'了解更多', + draftSaved: '草稿已保存', + draftDesc: '您的商品已保存为草稿。\n您可以继续编辑,或稍后在“我的商品”中发布。', + listingLive:'商品已上架', + publishDesc:'您的商品现已上架。\n买家可以浏览并购买您的设计。' } } diff --git a/src/lang/en.ts b/src/lang/en.ts index 94fc69cb..469d04a3 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1799,5 +1799,17 @@ export default { productImageSubTitle:'(from design collection)', apparelSketchTitle:'Apparel Sketch ', apparelSketchSubTitle:'(from design collection)', + productName:'Product Name', + price:'Price', + productDescription:'Product Description', + designFor:'Designed For', + productCategory:'Product Category', + categoryTips:'select all that apply', + policy:'By default, all sales follow the platform\'s licensing policy — buyers will receive a usage license upon download.', + learnMore:'Learn more', + draftSaved: 'Draft Saved', + draftDesc: 'Your listing has been saved as a draft. \nYou can continue editing or publish it later from My Listings.', + listingLive:'Listing Live', + publishDesc:'Your listing is now live on the marketplace.\nBuyers can discover and purchase your design.' } } diff --git a/src/router/index.ts b/src/router/index.ts index 35bc7db2..f1e349c8 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -220,6 +220,13 @@ const routes: Array = [ meta: { enter: "all" }, component: () => import("@/views/SellerDashboard/MyListings/EditDetail/index.vue") + }, + { + path:'edit/status/:status', + name:'Status', + meta:{enter:'all'}, + component: () => + import("@/views/SellerDashboard/MyListings/EditDetail/Status.vue") } ] }, diff --git a/src/views/SellerDashboard/MyListings/EditDetail/Status.vue b/src/views/SellerDashboard/MyListings/EditDetail/Status.vue new file mode 100644 index 00000000..eb680dd2 --- /dev/null +++ b/src/views/SellerDashboard/MyListings/EditDetail/Status.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue b/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue index 3b5129f2..6806b9fa 100644 --- a/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue +++ b/src/views/SellerDashboard/MyListings/EditDetail/components/Radio.vue @@ -4,7 +4,14 @@ v-for="item in options" :key="item.key" type="button" - :class="['radio-button', { 'is-active': modelValue === item.key }]" + :class="[ + 'radio-button', + { + 'is-active': multiple + ? selectedValues.includes(item.key) + : modelValue === item.key + } + ]" @click="selectOption(item.key)" > {{ item.name }} @@ -13,6 +20,8 @@