diff --git a/package-lock.json b/package-lock.json index 49f2862..a5c87c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "dependencies": { "axios": "^1.3.6", - "cropper-next-vue": "^0.3.0", + "cropper-next-vue": "^0.3.1", "crypto-js": "^4.2.0", "element-plus": "^2.13.2", "gsap": "^3.13.0", @@ -2155,9 +2155,9 @@ } }, "node_modules/cropper-next-vue": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/cropper-next-vue/-/cropper-next-vue-0.3.0.tgz", - "integrity": "sha512-7xw0gGGCc0bKZhtHZ1BU6cxy9QYN5j2BpgIbM27Zdw8f9+W0FekNxSDVpQ4pGbSR540hVuzA+9uO8obUV7ugeA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cropper-next-vue/-/cropper-next-vue-0.3.1.tgz", + "integrity": "sha512-B80WRLPavJ/xAjDEofPWLEqnMy99yzXy+Kpak3wMFf+X/TqebvhvBL3fM0P5ZHLRq0v9k0qSAqFjukBhHc3XZA==", "license": "ISC", "engines": { "node": ">=22.0.0" @@ -10162,9 +10162,9 @@ } }, "cropper-next-vue": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/cropper-next-vue/-/cropper-next-vue-0.3.0.tgz", - "integrity": "sha512-7xw0gGGCc0bKZhtHZ1BU6cxy9QYN5j2BpgIbM27Zdw8f9+W0FekNxSDVpQ4pGbSR540hVuzA+9uO8obUV7ugeA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cropper-next-vue/-/cropper-next-vue-0.3.1.tgz", + "integrity": "sha512-B80WRLPavJ/xAjDEofPWLEqnMy99yzXy+Kpak3wMFf+X/TqebvhvBL3fM0P5ZHLRq0v9k0qSAqFjukBhHc3XZA==", "requires": {} }, "cross-spawn": { diff --git a/package.json b/package.json index 7744696..e03d9a6 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "axios": "^1.3.6", - "cropper-next-vue": "^0.3.0", + "cropper-next-vue": "^0.3.1", "crypto-js": "^4.2.0", "element-plus": "^2.13.2", "gsap": "^3.13.0", diff --git a/src/components/CommodityItem.vue b/src/components/CommodityItem.vue index 2eb7ef8..3ccbd43 100644 --- a/src/components/CommodityItem.vue +++ b/src/components/CommodityItem.vue @@ -50,7 +50,7 @@
HK${{ props.price }}
@@ -79,6 +79,8 @@ width: 100%; cursor: pointer; height: var(--commodity-height, auto); + aspect-ratio: 0.8/1; + object-fit: cover; margin-bottom: var(--commodity-marginBottom, 1rem); } > .detail { diff --git a/src/lang/en.ts b/src/lang/en.ts index 8ab8029..6575f00 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -49,7 +49,7 @@ export default { enterNewPassword: 'Enter a new password for
{email}', passwordsDoNotMatch: 'Passwords do not match', logOffTip: 'Are you sure to log off?', - pleaseLogTip: 'Please log in and try again.', + pleaseLogTip: 'Please log in and try again.' }, RegisterSuccess: { title1: 'Welcome to Stylish Parade!', @@ -218,7 +218,8 @@ export default { invoice: 'Invoice', completePayment: 'Complete Payment', buyAgain: 'Buy Again' - } + }, + invoiceMessage: 'Invoice is being prepared. Please refresh later.' }, empty: { title: 'Nothing in Wardrobe yet', diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts index f0f6230..5ff6a5d 100644 --- a/src/lang/zh-cn.ts +++ b/src/lang/zh-cn.ts @@ -47,7 +47,7 @@ export default { enterNewPassword: '请输入新密码
{email}', passwordsDoNotMatch: '两次输入密码不一致', logOffTip: '确定退出登录吗?', - pleaseLogTip: '请重新登录并重试。', + pleaseLogTip: '请重新登录并重试。' }, RegisterSuccess: { title1: '欢迎来到 Stylish Parade!', @@ -213,7 +213,8 @@ export default { invoice: '发票', completePayment: '完成付款', buyAgain: '再次购买' - } + }, + invoiceMessage: '发票生成中,请稍后刷新页面查看。' }, empty: { title: '衣橱暂无内容', diff --git a/src/views/setting/components/AvatarCropDialog.vue b/src/views/setting/components/AvatarCropDialog.vue index 35444b2..910dbff 100644 --- a/src/views/setting/components/AvatarCropDialog.vue +++ b/src/views/setting/components/AvatarCropDialog.vue @@ -12,7 +12,7 @@ { if (order.status === 1) { // 已支付,查看发票 + if (!order.hostedInvoiceUrl) { + ElMessage.primary(t('Wardrobe.orders.invoiceMessage')) + return + } window.open(order.hostedInvoiceUrl, '_blank') return }