diff --git a/src/assets/icons/eye.svg b/src/assets/icons/eye.svg new file mode 100644 index 0000000..9b4d290 --- /dev/null +++ b/src/assets/icons/eye.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/digitalItem/digital_item_banner.png b/src/assets/images/digitalItem/digital_item_banner.png new file mode 100644 index 0000000..d2ee914 Binary files /dev/null and b/src/assets/images/digitalItem/digital_item_banner.png differ diff --git a/src/components/CommodityItem.vue b/src/components/CommodityItem.vue index 55eb813..281c18b 100644 --- a/src/components/CommodityItem.vue +++ b/src/components/CommodityItem.vue @@ -34,7 +34,7 @@ const {} = toRefs(data);
-
+
{{ props.name }}
@@ -44,7 +44,7 @@ const {} = toRefs(data);
- +
@@ -62,13 +62,14 @@ const {} = toRefs(data); display: flex; justify-content: space-between; align-items: center; - .text{ + > .text{ color: #232323; > .name{ font-family: "KaiseiOpti-Regular"; font-weight: 400; font-size: var(--commodity-name-fontSize,1.6rem); line-height: var(--commodity-name-lineHeight,2.3rem); + margin-bottom: var(--commodity-name-marginBottom,0rem); } > .price{ font-family: "KaiseiOpti-Regular"; diff --git a/src/components/checked.vue b/src/components/checked.vue new file mode 100644 index 0000000..4954620 --- /dev/null +++ b/src/components/checked.vue @@ -0,0 +1,64 @@ + + + \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index 1bff1b5..be8cbea 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -23,6 +23,11 @@ const router = createRouter({ name: 'brand', component: () => import('../views/brand/index.vue') }, + { + path: '/digitalItem', + name: 'digitalItem', + component: () => import('../views/digitalItem/index.vue'), + }, { path: '/settings', name: 'settings', @@ -34,6 +39,11 @@ const router = createRouter({ name: 'shoppingCart', component: () => import('@/views/shoppingCart/index.vue') }, + { + path: '/notifications', + name: 'notifications', + component: () => import('@/views/notifications/index.vue') + }, { path: '/:pathMatch(.*)', name: '404', diff --git a/src/views/digitalItem/commodity-list.vue b/src/views/digitalItem/commodity-list.vue new file mode 100644 index 0000000..9c99b70 --- /dev/null +++ b/src/views/digitalItem/commodity-list.vue @@ -0,0 +1,115 @@ + + + \ No newline at end of file diff --git a/src/views/digitalItem/index.vue b/src/views/digitalItem/index.vue new file mode 100644 index 0000000..dcfb1cd --- /dev/null +++ b/src/views/digitalItem/index.vue @@ -0,0 +1,101 @@ + + + \ No newline at end of file diff --git a/src/views/digitalItem/merchant-info.vue b/src/views/digitalItem/merchant-info.vue new file mode 100644 index 0000000..2063f15 --- /dev/null +++ b/src/views/digitalItem/merchant-info.vue @@ -0,0 +1,135 @@ + + + \ No newline at end of file diff --git a/src/views/main-header.vue b/src/views/main-header.vue index c700cfb..04c4b41 100644 --- a/src/views/main-header.vue +++ b/src/views/main-header.vue @@ -120,11 +120,11 @@ } const onNotifications = () => { hideProfilePopover() - console.log('notifications') + router.push('/notifications') } const onSettings = () => { hideProfilePopover() - console.log('settings') + router.push('/settings') } const onLogout = () => { hideProfilePopover() diff --git a/src/views/notifications/components/NotificationListItem.vue b/src/views/notifications/components/NotificationListItem.vue new file mode 100644 index 0000000..e52039a --- /dev/null +++ b/src/views/notifications/components/NotificationListItem.vue @@ -0,0 +1,136 @@ + + + + diff --git a/src/views/notifications/components/NotificationsList.vue b/src/views/notifications/components/NotificationsList.vue new file mode 100644 index 0000000..161d904 --- /dev/null +++ b/src/views/notifications/components/NotificationsList.vue @@ -0,0 +1,111 @@ + + + + diff --git a/src/views/notifications/index.vue b/src/views/notifications/index.vue new file mode 100644 index 0000000..c1e08a2 --- /dev/null +++ b/src/views/notifications/index.vue @@ -0,0 +1,166 @@ + + + + diff --git a/src/views/notifications/types.ts b/src/views/notifications/types.ts new file mode 100644 index 0000000..90fabf5 --- /dev/null +++ b/src/views/notifications/types.ts @@ -0,0 +1,8 @@ +export interface NotificationRecord { + id: string + title: string + date: string + content: string + isUnread: boolean + isExpanded: boolean +} diff --git a/src/views/setting/components/Radio.vue b/src/views/setting/components/Radio.vue index 8d2376c..7c05e54 100644 --- a/src/views/setting/components/Radio.vue +++ b/src/views/setting/components/Radio.vue @@ -29,6 +29,7 @@ const props = defineProps<{ modelValue: string | number | boolean | Array | null options: Option[] // 按钮选项数组 multiple?: boolean // 是否支持多选,默认为 false + max?: number // 多选时最多可选数量,不传则不限制 }>() const emit = defineEmits<{ @@ -54,6 +55,9 @@ const selectOption = (value: any) => { if (index >= 0) { current.splice(index, 1) } else { + if (typeof props.max === 'number' && props.max > 0 && current.length >= props.max) { + current.shift() + } current.push(value) } emit('update:modelValue', current) diff --git a/src/views/setting/index.vue b/src/views/setting/index.vue index 831ddb5..1a8eed3 100644 --- a/src/views/setting/index.vue +++ b/src/views/setting/index.vue @@ -18,9 +18,7 @@
- +
{{ fullName }}
@@ -28,113 +26,66 @@
- - - +
@@ -147,72 +98,72 @@
+
-
EMAIL
- - +
+
EMAIL
+
{{ displayData.email }}
+ +
-
+
NEW EMAIL ADDRESS
-
+
- +
Verify
-
+
-
PASSWORD
- - +
+
PASSWORD
+
.........
+ +
- +
+
@@ -227,40 +178,26 @@
DISPLAY LANGUAGE
- - +
+ {{ displayData.language }} +
+
+ + + +
REGION
- - +
+ {{ displayData.region }} +
+
+ + + +
@@ -285,10 +222,8 @@