From 87a56274d598af9842b593ec972f517161f60707 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期日, 19 一月 2025 18:44:27 +0800
Subject: [PATCH] 1.v6-屏蔽微信登录
---
pages/home/home.vue | 472 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 309 insertions(+), 163 deletions(-)
diff --git a/pages/home/home.vue b/pages/home/home.vue
index ec93edd..5f48b92 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -2,7 +2,7 @@
<view class="main-container user-home">
<view class="bg-top-green"></view>
<!-- 顶部,可能 -->
- <view class="school" :style="{'padding-top':(StatusBar)+'px'
+ <view class="school flex" :style="{'padding-top':(StatusBar + 8 )+'px'
,height:CustomBar+'rpx','line-height':CustomBar+'rpx' }">
<!-- <picker @change="PickerChangeSchool" :value="areaIndex" :range="schools" range-key="name">
<view class="picker flex">
@@ -15,8 +15,16 @@
<view class="picker flex" @click.stop="goToAddress">
<uni-icons type="location" class="m-r-5" size="18"></uni-icons>
<view>
- {{ address&&address.id?address.address: '选择地址' }}
- </view>
+ {{ current_address }}
+ </view>
+ <uni-icons class="icon" type="left" style="transform: rotate(-90deg);margin-left: 10rpx;" size="20"></uni-icons>
+
+ </view>
+ <view class="m-l-a m-r-0" style="position: relative;" @click="goto('/sub_pages/supplier/customer_service/customer_service',false)">
+ <view class="icon-kf-p">
+ <!-- <view>客服</view> -->
+ <image src="@/static/common/icon-kf.png" class="icon-kf img100"></image>
+ </view>
</view>
</view>
<view class="search-container m-t-12 flex" @click="goto('/pages/home/components/home-search',false)">
@@ -61,13 +69,13 @@
<span v-if="!currentNotice||!currentNotice.id"> </span>
</view>
<!-- 当前分类 -->
- <home-category></home-category>
+ <home-category ref="home_category"></home-category>
<!-- 特别的几个公告图片 -->
- <home-banner-imgs></home-banner-imgs>
+ <home-banner-imgs ref="home_banner"></home-banner-imgs>
<!-- 均价情况 -->
<!-- <home-price></home-price> -->
<!-- 几个专区 -->
- <home-zones></home-zones>
+ <home-zones ref="home_zeros"></home-zones>
<!-- 置顶的花列表 -->
<home-top-flow ref="home_top_flow"></home-top-flow>
@@ -75,7 +83,53 @@
</view>
<common-footer flg="0"></common-footer>
- <uni-popup ref="coupon_home" type="bottom" border-radius="10px 10px 0 0">底部弹出 Popup 自定义圆角</uni-popup>
+ <uni-popup ref="coupon_home" type="center" border-radius="10px 10px 0 0">
+ <view class="coupon-container" style="width: 690rpx;">
+ <view v-if="dto_home_coupon.imageUrl" class="coupont-item all" style="display: flex; justify-content: center; align-items: center; height: 100vh;">
+ <view @click="getCoupon(dto_home_coupon)"
+ :style="{
+ backgroundImage: `url(${dto_home_coupon.imageUrl})`,
+ backgroundSize: 'contain',
+ backgroundPosition: 'center',
+ backgroundRepeat: 'no-repeat' ,
+ width: '600px', // 设置宽度
+ height: '600px' // 设置高度
+ }">
+ </view>
+ </view>
+
+ <view class="coupont-item all" v-else>
+ <view class="flex container img100">
+
+ <view class="info-price">
+ <view class="price1">
+ {{dto_home_coupon.maxDiscountAmount?(`${dto_home_coupon.maxDiscountAmount}折`):(`¥${dto_home_coupon.couponDiscountValue}`)}}
+ </view>
+ <view class="price2">
+ {{dto_home_coupon.minOrderAmount?(`满¥${dto_home_coupon.minOrderAmount}可用`):'无门槛'}}
+ </view>
+ </view>
+ <view class="info flex1">
+ <view class="title">
+ {{dto_home_coupon.couponName||'-'}}
+ </view>
+ <view class="time" v-if="dto_home_coupon.getEndDate">
+ <!-- 领取后{{dto_home_coupon.usageTimeNum||''}}{{dto_home_coupon.usageTimeTypeName||''}}有效 -->
+ {{dto_home_coupon.getEndDate|| '-'}}前有效
+ </view>
+ <view class="button" @click="getCoupon(dto_home_coupon)">
+ 立即领取
+ </view>
+ </view>
+ </view>
+
+ <view class="tip">
+ <span class="t-red">*</span>{{dto_home_coupon.couponDescription || '此券每人限领1张。仅限用于花满芫鲜花交易平台鲜切花花款满额使用,不可与其他优惠同享、不可叠加使用'}}
+ </view>
+ </view>
+ </view>
+ </uni-popup>
+
</view>
</template>
@@ -95,11 +149,22 @@
...mapState({
address: state => {
return state.defaultaddress || {}
+ },
+ addressDesc: state=>{
+ return state.addressDesc || ''
},
currentInfo: state => {
return state.currentInfo || {}
- },
- }),
+ },
+
+ }),
+ current_address(){
+ var desc = this.addressDesc || (this.address&&this.address.id?this.address.address: '选择地址')
+ if(desc.length>=15){
+ return desc.substring(0,15) + '...'
+ }
+ return desc
+ }
},
components: {
homeCategory,
@@ -108,7 +173,16 @@
homeZones,
homeTopFlow
},
-
+ onPullDownRefresh() {
+ // 下拉刷新方法
+ this.init()
+ this.$message.showLoading()
+ this.init_children()
+ setTimeout(() => {
+ this.$message.hideLoading()
+ uni.stopPullDownRefresh()
+ }, 2000)
+ },
data() {
return {
search_flow: '',
@@ -165,7 +239,8 @@
hide_footer: false,
noticeList: [],
currentNoticeIndex: 0,
- currentNotice: {}
+ currentNotice: {},
+ dto_home_coupon: {}
};
},
onShareAppMessage() {
@@ -198,159 +273,206 @@
}
},
onLoad(options) {
- // if(options.partnerUserId){
- // //需要前往注册了
- // uni.navigateTo({
- // url: '/pages/login/supplier-login'
- // })
- // }
- // console.log('home created')
- //这里进行一次初始化即可
- // this.$http.request('get', '/api/school/area/list', {
-
- // }).then(res => {
- // if (res.code == 0) {
- // this.schools = res.data || []
- // }
- // })
-
- // uni.navigateTo({
- // url: '/sub_pages/customer/trade/detail'
- // })
-
- //获取banner图
- this.$http.request('get', '/api/pub/banner/list', {}).then(res => {
- if (res.code == 0) {
- this.banners = []
-
- var tarr = res.data || []
- if (tarr.length == 0) {
- // tarr.push({
- // url: 'https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png'
- // })
- this.banners = tarr
- } else {
- var result = []
- for (var item of tarr) {
- // http://106.14.123.210/files/group1/e8/e1c17f7229514e5da211d8d47b09906b.jpeg
- try {
- if (item.url) {
- var t = JSON.parse(item.url)
- if (Array.isArray(t)) {
- // item.url = t[0] || ''
- for (var url of t) {
- result.push({
- ...item,
- url: url || ''
- })
- }
- } else {
- // item.url = t.url || ''
- result.push({
- ...item,
- url: t.url || ''
- })
- }
- }
-
- } catch (e) {
- // console.log('error',e)
- }
- }
- this.banners = result
- }
- console.log('this.banners', this.banners)
- }
- })
-
- var areaIndex = uni.getStorageSync('areaIndex')
- if (!areaIndex && areaIndex !== 0) {
-
- } else {
- this.areaIndex = areaIndex
- }
- //如果已经登录,加载一下默认地址
- let that = this
- setTimeout(() => {
- if (that.currentInfo.id && !that.address.id) {
- that.$http.request('get', '/api/address/default/detail').then(res => {
- if (res.data) {
- that.$store.commit('setDefaultAddress', {
- ...res.data
- })
-
- }
- })
- }
-
- }, 2000)
- //公告
- var type = ''
- // #ifdef PUB_CUSTOMER
- type = 'customer'
- // #endif
- // #ifdef PUB_SUPPLIER
- type = 'supplier'
- // #endif
- // #ifdef PUB_PARTNER
- type = 'partner'
- // #endif
-
- this.$http.request('get', '/api/pub/announcement/list/' + type, {
- params: {
- size: 5,
- status: 'A'
- }
- }).then(res => {
- if (res.code === 0) {
- // (res.data && res.data.records || [])
- this.noticeList = res.data || []
- console.log('this.noticeList', this.noticeList)
- if (this.noticeList.length > 0) {
- this.currentNotice = this.noticeList[0]
- if (this.currentNotice.title && this.currentNotice.title.length >= 30) {
- this.scrollable = true
- } else {
- this.scrollable = false
- }
- let that = this
- if (this.noticeList.length >= 1) {
- setInterval(() => {
- console.log('interval,1')
- that.currentNoticeIndex += 1
- that.currentNoticeIndex %= that.noticeList.length
- that.currentNotice = that.noticeList[that.currentNoticeIndex]
- that.scrollable = false
- that.$nextTick(() => {
- if (that.currentNotice.title && that.currentNotice.title
- .length >= 30) {
- that.scrollable = true
- } else {
- that.scrollable = false
- }
- })
-
- }, 8000)
- }
-
- }
- }
- })
-
- // let tmp = this
- // //首页优惠券
- // this.$http.request('get', '/api/v2/coupon/app' + `/home/list`).then(res => {
- // if (res.code == 0) {
- // var list = res.data || []
- // var dto = list.length >= 1 ? list[0] : undefined
- // if (dto) {
- // // 显示弹窗图片
- // tmp.$refs.coupon_home.open()
- // }
- // }
- // })
+ this.init()
},
methods: {
+ async getCoupon(item) {
+ if (!this.currentInfo.id) {
+ await this.$message.confirm('请先前往登录')
+ this.$storage.removeItem('cache_home_show_coupon')
+ return
+ }
+ this.$message.showLoading()
+ const {
+ code,
+ data
+ } = await this.$http.request('post', '/api/v2/coupon/app/receive', {
+ data: {
+ couponId: item.id,
+ num: 1
+ }
+ })
+ if (code == 0) {
+ this.$refs.coupon_home.close()
+
+ this.$message.showToast('领取成功')
+ }
+ },
+ init_children() {
+ this.$refs.home_top_flow && this.$refs.home_top_flow.init && this.$refs.home_top_flow.init()
+ this.$refs.home_category && this.$refs.home_category.init && this.$refs.home_category.init()
+ this.$refs.home_banner && this.$refs.home_banner.init && this.$refs.home_banner.init()
+ this.$refs.home_zeros && this.$refs.home_zeros.init && this.$refs.home_zeros.init()
+ },
+ init() {
+ // if(options.partnerUserId){
+ // //需要前往注册了
+ // uni.navigateTo({
+ // url: '/pages/login/supplier-login'
+ // })
+ // }
+ // console.log('home created')
+ //这里进行一次初始化即可
+ // this.$http.request('get', '/api/school/area/list', {
+
+ // }).then(res => {
+ // if (res.code == 0) {
+ // this.schools = res.data || []
+ // }
+ // })
+
+ // uni.navigateTo({
+ // url: '/sub_pages/customer/trade/detail'
+ // })
+
+ //获取banner图
+ this.$http.request('get', '/api/pub/banner/list', {}).then(res => {
+ if (res.code == 0) {
+ this.banners = []
+
+ var tarr = res.data || []
+ if (tarr.length == 0) {
+ // tarr.push({
+ // url: 'https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png'
+ // })
+ this.banners = tarr
+ } else {
+ var result = []
+ for (var item of tarr) {
+ // http://106.14.123.210/files/group1/e8/e1c17f7229514e5da211d8d47b09906b.jpeg
+ try {
+ if (item.url) {
+ var t = JSON.parse(item.url)
+ if (Array.isArray(t)) {
+ // item.url = t[0] || ''
+ for (var url of t) {
+ result.push({
+ ...item,
+ url: url || ''
+ })
+ }
+ } else {
+ // item.url = t.url || ''
+ result.push({
+ ...item,
+ url: t.url || ''
+ })
+ }
+ }
+
+ } catch (e) {
+ // console.log('error',e)
+ }
+ }
+ this.banners = result
+ }
+ console.log('this.banners', this.banners)
+ }
+ })
+
+ var areaIndex = uni.getStorageSync('areaIndex')
+ if (!areaIndex && areaIndex !== 0) {
+
+ } else {
+ this.areaIndex = areaIndex
+ }
+ //如果已经登录,加载一下默认地址
+ let that = this
+ setTimeout(() => {
+ if (that.currentInfo.id && !that.address.id) {
+ that.$http.request('get', '/api/address/default/detail').then(res => {
+ if (res.data) {
+ that.$store.commit('setDefaultAddress', {
+ ...res.data
+ })
+
+ }
+ })
+ }
+
+ }, 2000)
+ //公告
+ var type = ''
+ // #ifdef PUB_CUSTOMER
+ type = 'customer'
+ // #endif
+ // #ifdef PUB_SUPPLIER
+ type = 'supplier'
+ // #endif
+ // #ifdef PUB_PARTNER
+ type = 'partner'
+ // #endif
+
+ this.$http.request('get', '/api/pub/announcement/list/' + type, {
+ params: {
+ size: 5,
+ status: 'A'
+ }
+ }).then(res => {
+ if (res.code === 0) {
+ // (res.data && res.data.records || [])
+ this.noticeList = res.data || []
+ console.log('this.noticeList', this.noticeList)
+ if (this.noticeList.length > 0) {
+ this.currentNotice = this.noticeList[0]
+ if (this.currentNotice.title && this.currentNotice.title.length >= 30) {
+ this.scrollable = true
+ } else {
+ this.scrollable = false
+ }
+ let that = this
+ if (this.noticeList.length >= 1) {
+ setInterval(() => {
+ console.log('interval,1')
+ that.currentNoticeIndex += 1
+ that.currentNoticeIndex %= that.noticeList.length
+ that.currentNotice = that.noticeList[that.currentNoticeIndex]
+ that.scrollable = false
+ that.$nextTick(() => {
+ if (that.currentNotice.title && that.currentNotice.title
+ .length >= 30) {
+ that.scrollable = true
+ } else {
+ that.scrollable = false
+ }
+ })
+
+ }, 8000)
+ }
+
+ }
+ }
+ })
+
+
+ let tmp = this
+ //延迟2秒
+ setTimeout(() => {
+ if (tmp.currentInfo.id) {
+ var value = tmp.$storage.getItem('cache_home_show_coupon')
+ if (!value) {
+ //首页优惠券
+ tmp.$storage.setItem('cache_home_show_coupon', '1')
+ var u = '/api/v2/coupon/app/home/alert'
+ // u = '/api/v2/coupon/app/home/list'
+ tmp.$http.request('get', u).then(res => {
+ if (res.code == 0) {
+ // var list = res.data || {}
+ // var dto = list.length >= 1 ? list[0] : undefined
+ var dto = res.data || undefined
+ if (dto) {
+ // 显示弹窗图片
+ tmp.dto_home_coupon = dto
+ tmp.$refs.coupon_home.open()
+ }
+ }
+ })
+ }
+ }
+ }, 1200)
+
+ },
+
clickBanner(item) {
if (item.id) {
uni.navigateTo({
@@ -366,7 +488,7 @@
return
}
uni.navigateTo({
- url: '/pages/user/address/address?source=select'
+ url: '/pages/user/address/address?source=home'
})
},
buttonSearchFlow() {
@@ -407,4 +529,28 @@
<style lang="scss" scoped>
@import "./home.scss";
+
+ /* #ifdef PUB_CUSTOMER */
+ @import "@/sub_pages/customer/coupon/coupon.scss";
+ /* #endif */
+ .icon-kf-p{
+ // margin-top: 12rpx;
+ position: absolute;
+ right: 0rpx;
+ bottom: 16rpx;
+ text-align: center;
+ // font-size: 12rpx;
+ color: #fff;
+ // min-width: 120rpx;
+ display: flex;
+ // width: fit-content;
+ height: 44rpx;
+ line-height: 44rpx;
+ // height: 64rpx;
+ .icon-kf{
+ width: 44rpx;
+ height: 44rpx;
+ // margin-left: 20rpx;
+ }
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3