13 changed files with 224 additions and 19 deletions
@ -1 +1,80 @@ |
|||||
{"code":200,"msg":"操作成功","data":{"activityList":[{"activityId":67,"activityName":"2022秋季会员系列Miss Dior 花漾系列香水 惊喜上线VIP会员","activityNameEn":"DIOR","activityContent":"2022秋季会员系列Miss Dior 花漾系列香水 惊喜上线VIP会员","activityContentEn":"Dior","activityAddress":"商场活动2地址","activityAddressEn":"Chinese Address","activityType":1,"shopCode":"","shopName":"","shopNameEn":"","houseNumber":"","fileUrl":"/iotFile/2023/04/18/rShdVfOa1tj5QXDblRzSE.png","startDate":"2023-04-16","endDate":"2023-04-30","building":"","buildingCode":"","buildingOrder":0,"floor":"","floorCode":"","floorOrder":0,"point":-1},{"activityId":68,"activityName":"惊喜上线VIP会员","activityNameEn":"vip","activityContent":"惊喜上线VIP会员","activityContentEn":"vip\n","activityAddress":"商场活动2地址","activityAddressEn":"Chinese Address","activityType":1,"shopCode":"","shopName":"","shopNameEn":"","houseNumber":"","fileUrl":"/iotFile/2023/04/18/qcivkL9KGHO-0DonwV8UR.png","startDate":"2023-04-17","endDate":"2023-04-30","building":"","buildingCode":"","buildingOrder":0,"floor":"","floorCode":"","floorOrder":0,"point":-1}]}} |
|
||||
|
{ |
||||
|
"code": 200, |
||||
|
"msg": "操作成功", |
||||
|
"data": { |
||||
|
"activityList": [ |
||||
|
{ |
||||
|
"activityId": 67, |
||||
|
"activityName": "2022秋季会员系列Miss Dior 花漾系列香水 惊喜上线VIP会员", |
||||
|
"activityNameEn": "DIOR", |
||||
|
"activityContent": "2022秋季会员系列Miss Dior 花漾系列香水 惊喜上线VIP会员", |
||||
|
"activityContentEn": "Dior", |
||||
|
"activityAddress": "商场活动2地址", |
||||
|
"activityAddressEn": "Chinese Address", |
||||
|
"activityType": 1, |
||||
|
"shopCode": "", |
||||
|
"shopName": "", |
||||
|
"shopNameEn": "", |
||||
|
"houseNumber": "", |
||||
|
"fileUrl": "/iotFile/2023/04/18/rShdVfOa1tj5QXDblRzSE.png", |
||||
|
"startDate": "2023-04-16", |
||||
|
"endDate": "2023-04-30", |
||||
|
"building": "", |
||||
|
"buildingCode": "", |
||||
|
"buildingOrder": 0, |
||||
|
"floor": "", |
||||
|
"floorCode": "", |
||||
|
"floorOrder": 0, |
||||
|
"point": -1 |
||||
|
}, |
||||
|
{ |
||||
|
"activityId": 68, |
||||
|
"activityName": "惊喜上线VIP会员", |
||||
|
"activityNameEn": "vip", |
||||
|
"activityContent": "惊喜上线VIP会员", |
||||
|
"activityContentEn": "vip\n", |
||||
|
"activityAddress": "商场活动2地址", |
||||
|
"activityAddressEn": "Chinese Address", |
||||
|
"activityType": 1, |
||||
|
"shopCode": "", |
||||
|
"shopName": "", |
||||
|
"shopNameEn": "", |
||||
|
"houseNumber": "", |
||||
|
"fileUrl": "/iotFile/2023/04/18/qcivkL9KGHO-0DonwV8UR.png", |
||||
|
"startDate": "2023-04-17", |
||||
|
"endDate": "2023-04-30", |
||||
|
"building": "", |
||||
|
"buildingCode": "", |
||||
|
"buildingOrder": 0, |
||||
|
"floor": "", |
||||
|
"floorCode": "", |
||||
|
"floorOrder": 0, |
||||
|
"point": -1 |
||||
|
}, |
||||
|
{ |
||||
|
"activityId": 68, |
||||
|
"activityName": "惊喜上线VIP会员", |
||||
|
"activityNameEn": "vip", |
||||
|
"activityContent": "惊喜上线VIP会员", |
||||
|
"activityContentEn": "vip\n", |
||||
|
"activityAddress": "商场活动2地址", |
||||
|
"activityAddressEn": "Chinese Address", |
||||
|
"activityType": 1, |
||||
|
"shopCode": "", |
||||
|
"shopName": "", |
||||
|
"shopNameEn": "", |
||||
|
"houseNumber": "", |
||||
|
"fileUrl": "/iotFile/2023/04/18/qcivkL9KGHO-0DonwV8UR.png", |
||||
|
"startDate": "2023-04-17", |
||||
|
"endDate": "2023-04-30", |
||||
|
"building": "", |
||||
|
"buildingCode": "", |
||||
|
"buildingOrder": 0, |
||||
|
"floor": "", |
||||
|
"floorCode": "", |
||||
|
"floorOrder": 0, |
||||
|
"point": -1 |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
|||||
@ -0,0 +1,3 @@ |
|||||
|
import { request } from '../../http' |
||||
|
// 获取会员信息
|
||||
|
export const getMemberInfo = () => request<MemberInfo>({ url: `/JSON/getMemberInterests.json` }) |
||||
@ -0,0 +1,18 @@ |
|||||
|
declare interface MemberInfo { |
||||
|
title?: string // 标题
|
||||
|
titleEn?: string // 英文标题
|
||||
|
content?: string // 内容
|
||||
|
contentEn?: string // 英文内容
|
||||
|
fileList?: Array<string> // 图片集合
|
||||
|
qrFileList?: Array<QrFile> // 二维码集合
|
||||
|
} |
||||
|
|
||||
|
type QrFile = { |
||||
|
name: string // 名称
|
||||
|
nameEn: string // 英文名称
|
||||
|
fileUrl: string // 二维码地址
|
||||
|
} |
||||
|
|
||||
|
declare interface fileList { |
||||
|
fileUrl: string |
||||
|
} |
||||
@ -0,0 +1,44 @@ |
|||||
|
<template> |
||||
|
<typeBtnGroup class="top" :list="list" /> |
||||
|
<div class="carousel"> |
||||
|
<Carousel :ac-list="memberInfo" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script setup lang="ts"> |
||||
|
import { shallowRef } from 'vue' |
||||
|
import { getMemberInfo } from '@/http/api/member/index' |
||||
|
import Carousel from '@/components/Carousel/Carousel.vue' |
||||
|
import typeBtnGroup from '@/components/TypeBtnList/TypeBtnList.vue' |
||||
|
const list = [ |
||||
|
{ |
||||
|
title: '金卡会员', |
||||
|
titleEn: 'Gold Card Member' |
||||
|
}, |
||||
|
{ |
||||
|
title: '黑卡会员', |
||||
|
titleEn: 'Black Card Member' |
||||
|
} |
||||
|
] |
||||
|
const memberInfo = shallowRef<fileList[]>([]) |
||||
|
getMemberInfo().then(({ data }) => { |
||||
|
if (data.fileList) { |
||||
|
memberInfo.value = data.fileList?.map(item => { |
||||
|
return { |
||||
|
fileUrl: item |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}) |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.top { |
||||
|
position: fixed; |
||||
|
top: 140px; |
||||
|
left: 734px; |
||||
|
} |
||||
|
.carousel { |
||||
|
padding-top: 244px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div class="po">{{ $t('school') }}</div> |
||||
|
<Transition name="zoom"> |
||||
|
<div class="carousel"> |
||||
|
<Carousel :ac-list="aclist" /> |
||||
|
</div> |
||||
|
</Transition> |
||||
|
</template> |
||||
|
|
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue' |
||||
|
import { getMallActivity } from '@/http/api/activity' |
||||
|
import Carousel from '@/components/Carousel/Carousel.vue' |
||||
|
const aclist = ref<Activity[]>([]) |
||||
|
getMallActivity().then(({ data }) => { |
||||
|
aclist.value = data.activityList |
||||
|
}) |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.po { |
||||
|
position: fixed; |
||||
|
top: 140px; |
||||
|
left: 900px; |
||||
|
font-size: 24px; |
||||
|
font-family: 'font_regular'; |
||||
|
color: #84754e; |
||||
|
font-style: normal; |
||||
|
font-weight: 400; |
||||
|
line-height: 32px; |
||||
|
} |
||||
|
.carousel { |
||||
|
padding-top: 244px; |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue