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