Files
HTFX-CRM-APP/pages/activity/index.vue

102 lines
2.6 KiB
Vue
Raw Permalink Normal View History

2025-07-07 15:55:44 +08:00
<template>
<NavBar />
<HomeSwiper position="1" />
<view class="container">
<view class="title">
<PageTitle :title="$t('menu.activity')" />
</view>
<view class="content">
<Spin v-show="loading" />
<view v-if="shop" class="top-shop" >
<image class="img" mode="aspectFill" :src="shop.img_url" @click="goShop"></image>
<view class="footer" v-if="shop.doc">
<uni-link :showUnderLine="false" color="#29BBE4" :fontSize="fs" :href="shop.doc" :text="$t('activity.doc')"></uni-link>
</view>
</view>
<view class="activity-list">
<template v-for="(item, index) in activityList" >
<view class="activity-item" >
<image class="img" mode="aspectFill" :src="item.img_url" ></image>
<view class="info" >
<view class="activity-title uni-ellipsis-2">
<view v-if="item.activity_if_over == 1" class="act-tag-1">{{ $t('activity.activityIfOver1') }}</view>
<view v-else class="act-tag-0">{{ $t('activity.activityIfOver0') }}</view>
{{item.title ? item.title : item.activity_name}}
</view>
<view class="activity-footer" v-if="item.contentId" >
<view @click="goDetail(item)" >
<text>{{$t('activity.more')}}</text>
<image class="icon" src="/static/more.svg"></image>
</view>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
</template>
<script>
import { getShopBrief, queryActivityList, queryNewActivityList } from '@/services/activity';
import { UserLanguage } from '@/utils/const.ts';
export default {
data() {
return {
loading: false,
shop: undefined,
list1: [],
list2: [],
fs: uni.upx2px(24)
};
},
methods: {
async getListData() {
this.loading = true
let res = await getShopBrief()
this.shop = res.data
res = await queryActivityList({qcc_language: UserLanguage})
if (res && res.code === 0) {
this.list1 = res.data
}
res = await queryNewActivityList({qcc_language: UserLanguage})
if (res && res.code === 0) {
this.list2 = res.data
}
this.loading = false
},
goDetail(item) {
uni.navigateTo({
url: "/pages/activity/detail?contentId=" + item.contentId + "&contentType=" + item.contentType
})
},
goShop() {
uni.navigateTo({
url: "/pages/activity/shop/index"
})
}
},
created() {
this.getListData();
},
computed: {
activityList() {
if(!this.list1 && !this.list2) {
return []
}
if (!this.list1) {
return this.list2
}
if (!this.list2) {
return this.list1
}
return [...this.list1, ...this.list2]
}
}
};
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>