From b3d9bce4405fe395ef94760b771da073752a7c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Mon, 4 May 2026 11:18:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=96=E5=AE=B6=E7=AB=AF=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/css/style.css | 7 +- src/assets/style/style.less | 5 +- src/lang/cn.ts | 69 +++++++++++++++ src/lang/en.ts | 72 +++++++++++++++ .../BrandProfile/brand-info.vue | 37 ++++---- .../BrandProfile/image-clip-dialog.vue | 22 +++-- .../SellerDashboard/BrandProfile/index.vue | 18 ++-- src/views/SellerDashboard/MyOrders/index.vue | 24 ++--- src/views/SellerDashboard/Settings/index.vue | 88 +++++++++++-------- src/views/SellerDashboard/index.vue | 13 +-- 10 files changed, 262 insertions(+), 93 deletions(-) diff --git a/src/assets/css/style.css b/src/assets/css/style.css index 51d2196b..c606092b 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -167,8 +167,7 @@ li { padding: 0.6rem 0.5rem; } .ant-modal-mask { - background-color: #666666; - opacity: 0.5; + background-color: rgba(102, 102, 102, 0.5); } .select_block { height: 4rem; @@ -1251,8 +1250,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; diff --git a/src/assets/style/style.less b/src/assets/style/style.less index 31f19666..34b7e1d8 100644 --- a/src/assets/style/style.less +++ b/src/assets/style/style.less @@ -172,8 +172,9 @@ input:focus{ } } .ant-modal-mask{ - background-color: #666666; - opacity: .5; + background-color: rgba(102,102,102,0.5); + // background-color: #666666; + // opacity: .5; } .select_block{ height: 4rem; diff --git a/src/lang/cn.ts b/src/lang/cn.ts index 7ecc8c7a..e063aa3b 100644 --- a/src/lang/cn.ts +++ b/src/lang/cn.ts @@ -1762,5 +1762,74 @@ export default { draftDesc: '您的商品已保存为草稿。\n您可以继续编辑,或稍后在“我的商品”中发布。', listingLive:'商品已上架', publishDesc:'您的商品现已上架。\n买家可以浏览并购买您的设计。' + }, + Seller: { + // Brand Profile + brandProfile: "店铺详情", + myListings: "我的商品", + myOrders: "我的订单", + settings: "设置", + brandProfileBgNullTip: "您的店铺横幅尚未设置。", + changeBrandBanner: "更改店铺横幅", + edit: "编辑", + cancel: "取消", + confirm: "确认", + saveChange: "保存更改", + brandProfileEditTip: "这些更改将会在您的“Stylish Parade”品牌页面上得到体现。", + storeName: "店铺名称", + storeNameDesc: "请输入您的店铺名称", + ownerName: "姓名", + ownerNameDesc: "请输入姓名", + email: "邮箱", + emailDesc: "请输入邮箱", + mobile: "手机号", + mobileDesc: "请输入手机号", + link: "链接{index}", + links: "投资组合/社交媒体链接", + storeDescription: "店铺描述", + storeDescriptionDesc: "请输入店铺描述", + storeDescriptionErr: "请输入店铺描述", + cropBrandBanner: "裁剪店铺横幅", + cropAvatar: "裁剪头像", + cropFrom: "裁剪来源:", + sketch: "线稿图", + mainProductImage: "产品主图", + cropPreview: "裁剪预览", + imageClipCoverTip: "将封面图片裁剪为正方形,保持比例。", + imageClipMainProductImageTip: "将产品主图裁剪为正方形,保持比例。", + imageClipSketchTip: "将线稿图裁剪为正方形,保持比例。", + imageClipApparelTip: "将服装线稿图裁剪为正方形,保持比例。", + // 我的订单 + totalRevenue: "总销售额", + totalPurchases: "总购买量", + totalViews: "总浏览量", + allInvoice: "所有订单", + myOrdersTip: "所有已完成交易的摘要", + myOrdersSearchPlaceholder: "按项目名称或订单ID搜索", + orderId: "订单ID", + item: "项目", + price: "价格", + buyerUsername: "买家用户名", + date: "日期", + // 设置 + notifications: "通知", + notificationsTitle: "新订单通知", + notificationsTip: "当有新订单时收到通知。", + unbound: "未绑定", + manage: "管理", + bindNow: "立即绑定", + paymentCurrency: "支付货币", + HKD: "HKD - 香港元", + fixed: "固定", + dataPrivacy: "数据与隐私", + dataPrivacyTitle: "版权许可", + dataPrivacyTip1: "每笔购买下载都会自动附带一份许可证证书。请查看适用于您商品列表的默认许可条款。", + dataPrivacyTip2: "此许可证由 Code-Create 颁发,购买时即具有法律约束力。它证明购买者有权按照以下条款使用所购买的设计资产。", + dataPrivacyTip3: "对于定制的许可安排,请联系我们。", + downloadToView: "下载以查看", + stopSelling: "停止销售", + stopSellingTitle: "停用卖家账户", + stopSellingTip: "永久停用您的卖家账户。所有商品列表和发票记录将被删除。您以后可以重新注册为卖家,但您的先前销售数据无法恢复。", + deactivate: "停用卖家账户", } } diff --git a/src/lang/en.ts b/src/lang/en.ts index 2653c745..5949a8f8 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1813,5 +1813,77 @@ export default { 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.' + }, + Seller: { + brandProfile: "Brand Profile", + myListings: "My Listings", + myOrders: "My Orders", + settings: "Settings", + // Brand Profile + brandProfileBgNullTip: "Your brand banner has not been set up yet.", + changeBrandBanner: "Change Brand Banner", + edit: "Edit", + cancel: "Cancel", + confirm: "Confirm", + saveChange: "Save Change", + brandProfileEditTip: "Changes will be reflected on your Stylish Parade brand page.", + storeName: "Store Name", + storeNameDesc: "Enter your store name", + ownerName: "Owner’s Full Name", + ownerNameDesc: "Enter store owner's full name", + email: "Email", + emailDesc: "Enter email", + mobile: "Phone Number", + mobileDesc: "Enter phone number", + link: "Link {index}", + links: "Portfoilo/Social Media Links", + storeDescription: "Store Description", + storeDescriptionDesc: "Briefly describe your design style and store features...", + storeDescriptionErr: "Please enter store description", + cropBrandBanner: "Crop Brand Banner", + cropAvatar: "Crop Avatar", + cropFrom: "Crop from:", + sketch: "Sketch", + mainProductImage: "Main Product Image", + cropPreview: "Crop Preview", + imageClipCoverTip: "Align crown to top, mid-thigh to bottom for best results.", + imageClipMainProductImageTip: "Align crown to top, foot base to bottom for best results.", + imageClipSketchTip: "Align crown to top, foot base to bottom for best results.", + imageClipApparelTip: "Trim whitespace and center your apparel sketch.", + // 我的订单 + totalRevenue: "Total Revenue", + totalPurchases: "Total Purchases", + totalViews: "Total Views", + allInvoice: "All Invoice", + myOrdersTip: "A summary of all completed transactions.", + myOrdersSearchPlaceholder: "Search by item name or order ID", + orderId: "Order ID", + item: "Item", + price: "Price", + buyerUsername: "Buyer Username", + date: "Date", + // 设置 + notifications: "Notifications", + notificationsTitle: "New order notification", + notificationsTip: "Receive an inbox message when a new order is placed.", + payout: "Payout", + payoutTitle: "Payment Providers", + payoutTip: "Select how you want to receive payments.", + unbound: "Unbound", + manage: "Manage", + bindNow: "Bind Now", + paymentCurrency: "Payment Currency", + HKD: "HKD - Hong Kong Dollar", + fixed: "Fixed", + dataPrivacy: "Data & Privacy", + dataPrivacyTitle: "Copyright licence", + dataPrivacyTip1: "A licence certificate is automatically included with every purchase download. View the default licensing terms applied to your listings.", + dataPrivacyTip2: "BThis licence is issued by Code-Create and is legally binding upon purchase. It certifies the buyer's right to use the purchased design asset in accordance with the terms below.", + dataPrivacyTip3: "For custom licensing arrangements, contact us.", + downloadToView: "Download to View", + stopSelling: "Stop Selling", + stopSellingTitle: "Deactivate seller account", + stopSellingTip: "Permanently deactivate your seller account. All listings and invoice records will be deleted. You may re-register as a seller in the future, but your previous sales data cannot be recovered.", + deactivate: "Deactivate", } } diff --git a/src/views/SellerDashboard/BrandProfile/brand-info.vue b/src/views/SellerDashboard/BrandProfile/brand-info.vue index 709cbaea..3a8a0528 100644 --- a/src/views/SellerDashboard/BrandProfile/brand-info.vue +++ b/src/views/SellerDashboard/BrandProfile/brand-info.vue @@ -2,10 +2,10 @@
- + @@ -13,34 +13,34 @@ >{{ formData.shopName.length }}/80 - +
- + - +
- + - + - + @@ -83,6 +83,9 @@ import { ref, reactive, watch } from "vue" import { useRoute, useRouter } from "vue-router" import { useStore } from "vuex" + import { useI18n } from "vue-i18n" + const { t } = useI18n() + const store = useStore() const designerInfo = computed(() => store.state.seller.designerInfo) const route = useRoute() @@ -94,11 +97,11 @@ } }) const formRules = { - shopName: [{ required: true, message: "Enter the store name" }], - ownerName: [{ required: true, message: "Enter store owner's full name" }], - email: [{ required: true, message: "Enter email" }], - mobile: [{ required: true, message: "Enter phone number" }], - description: [{ required: true, message: "Enter store description" }] + shopName: [{ required: true, message: t("Seller.storeNameDesc") }], + ownerName: [{ required: true, message: t("Seller.ownerNameDesc") }], + email: [{ required: true, message: t("Seller.emailDesc") }], + mobile: [{ required: true, message: t("Seller.mobileDesc") }], + description: [{ required: true, message: t("Seller.storeDescriptionErr") }] } const formRef = ref(null) diff --git a/src/views/SellerDashboard/BrandProfile/image-clip-dialog.vue b/src/views/SellerDashboard/BrandProfile/image-clip-dialog.vue index 449b361e..aadf0e37 100644 --- a/src/views/SellerDashboard/BrandProfile/image-clip-dialog.vue +++ b/src/views/SellerDashboard/BrandProfile/image-clip-dialog.vue @@ -16,28 +16,28 @@
{{ data.title }}
- Crop from: + {{ $t("Seller.cropFrom") }}
- Sketch + {{ $t("Seller.sketch") }}
- Main product image + {{ $t("Seller.mainProductImage") }}
- +
@@ -64,7 +64,7 @@ >
- Crop Preview + {{ $t("Seller.cropPreview") }}
@@ -81,6 +81,10 @@