From 6d54fb64df667c0c396fc7d74aeed9e096d95f95 Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期三, 11 九月 2024 10:36:50 +0800 Subject: [PATCH] Merge branch 'v2' of ssh://47.96.225.205:29418/hmy_farmer-main into v2 --- pages/home/home.vue | 270 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 199 insertions(+), 71 deletions(-) diff --git a/pages/home/home.vue b/pages/home/home.vue index 1059f80..ec93edd 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -4,52 +4,60 @@ <!-- 顶部,可能 --> <view class="school" :style="{'padding-top':(StatusBar)+'px' ,height:CustomBar+'rpx','line-height':CustomBar+'rpx' }"> - <picker @change="PickerChangeSchool" :value="areaIndex" :range="schools" range-key="name"> - <view class="picker flex"> - <uni-icons type="location" class="m-r-5" size="18"></uni-icons> - <view> - {{ areaIndex>=0&&schools[areaIndex].name ? schools[areaIndex].name : '选择位置' }} - </view> + <!-- <picker @change="PickerChangeSchool" :value="areaIndex" :range="schools" range-key="name"> + <view class="picker flex"> + <uni-icons type="location" class="m-r-5" size="18"></uni-icons> + <view> + {{ areaIndex >= 0 && schools[areaIndex].name ? schools[areaIndex].name : '选择位置' }} + </view> + </view> + </picker> --> + <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> - </picker> + </view> </view> - <view class="search-container m-t-12 flex"> + <view class="search-container m-t-12 flex" @click="goto('/pages/home/components/home-search',false)"> <view class="flex1 input"> - <u-input placeholder="请输入花名" v-model="search_flow"> + <u-input placeholder="请输入花名或店铺名" disabled v-model="search_flow"> <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> + <!-- @click="buttonSearchFlow" --> + <uni-icons color="#20613D" type="search" size="24"></uni-icons> </template> </u-input> </view> </view> <!-- banner --> - <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner" - :mode="'dot'" :dots-styles="dotsStyles[0]" field="content"> - <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0" - v-if="banners&&banners.length>0" :autoplay="true"> - <swiper-item v-for="(item, index) in banners" :key="index"> - <view class="swiper-item" :class="'swiper-item' + index"> - <image @click="previewImg(item.imageSmall||item.image)" class="home-banner-image" - mode="aspectFit" :src="item.imageSmall||item.image"> - </image> - </view> - </swiper-item> - </swiper> - <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0"> - <swiper-item v-for="(item, index) in 1" :key="index"> - <view class="swiper-item" :class="'swiper-item' + index"> - <image class="home-banner-image" mode="scaleToFill" - src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png"> - </image> - </view> - </swiper-item> - </swiper> - </uni-swiper-dot> + <!-- <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner" + :mode="'dot'" :dots-styles="dotsStyles[0]" field="content"> --> + <swiper class="swiper-box" @change="changeBanner" :interval="10000" :circular="true" :current="0" + v-if="banners&&banners.length>0" :autoplay="true"> + <swiper-item v-for="(item, index) in banners" :key="index"> + <view class="swiper-item" :class="'swiper-item' + index"> + <!-- @click="previewImg(item.url||item.image)" --> + <image class="home-banner-image" mode="scaleToFill" @click="clickBanner(item)" + :src="item.url||item.image"> + </image> + </view> + </swiper-item> + </swiper> + <swiper class="swiper-box" @change="changeBanner" :current="0" v-if="!banners||banners.length==0"> + <swiper-item v-for="(item, index) in 1" :key="index"> + <view class="swiper-item" :class="'swiper-item' + index"> + <image class="home-banner-image" mode="scaleToFill" + src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png"> + </image> + </view> + </swiper-item> + </swiper> + <!-- </uni-swiper-dot> --> <!-- tip --> <view class="m-t-12" @click="getNoticeMore"> <uni-notice-bar class="notice-bar" color="#333" background-color="#fff" show-get-more show-icon - :scrollable="scrollable" :text="currentNotice.title" :key="currentNotice.id" /> + :scrollable="scrollable" :text="currentNotice.title||'暂无公告'" :key="currentNotice.id" /> <span v-if="!currentNotice||!currentNotice.id"> </span> </view> <!-- 当前分类 --> @@ -57,20 +65,25 @@ <!-- 特别的几个公告图片 --> <home-banner-imgs></home-banner-imgs> <!-- 均价情况 --> - <home-price></home-price> + <!-- <home-price></home-price> --> <!-- 几个专区 --> <home-zones></home-zones> <!-- 置顶的花列表 --> - <home-top-flow></home-top-flow> + <home-top-flow ref="home_top_flow"></home-top-flow> - <view style="min-height:200rpx"> + <view style="min-height:140rpx"> </view> <common-footer flg="0"></common-footer> + + <uni-popup ref="coupon_home" type="bottom" border-radius="10px 10px 0 0">底部弹出 Popup 自定义圆角</uni-popup> </view> </template> <script> + import { + mapState + } from 'vuex' import homePrice from './components/home-price.vue' import homeBannerImgs from './components/home-banner-imgs.vue' import homeZones from './components/home-zones.vue' @@ -78,6 +91,16 @@ import homeCategory from './components/home-category.vue' export default { + computed: { + ...mapState({ + address: state => { + return state.defaultaddress || {} + }, + currentInfo: state => { + return state.currentInfo || {} + }, + }), + }, components: { homeCategory, homePrice, @@ -142,32 +165,45 @@ hide_footer: false, noticeList: [], currentNoticeIndex: 0, - currentNotice: { - - } + currentNotice: {} }; }, - // onShareAppMessage() { - // let that = this; - // var url = - // `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${this.currentInfo&&this.currentInfo.nickName||''}`; //你的转发页面路径拼接参数 - // return { - // title: "校购GO小狗狗", - // path: url, - // } - // }, - // onShareTimeline() { - // let that = this; - // var url = "/pages/home/home" //你的分享页面路径 - // return { - // title: '校购GO小狗狗', - // path: url, - // query: `shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${this.currentInfo&&this.currentInfo.nickName||''}`, //你的参数拼接,注意:不需要加? - // // imageUrl: 'https://cdn.uviewui.com/uview/swiper/1.jpg' //你分享的封面 - // }; - // }, - - onLoad() { + onShareAppMessage() { + let that = this; + var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO && + that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || '' + var url = + `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数 + return { + title: "花满芫", + path: url, + } + }, + onShareTimeline() { + let that = this; + var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO && + that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || '' + var url = + `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数 + return { + title: "花满芫", + path: url, + } + }, + onReachBottom() { + console.log('onReachBottom') + if (this.$refs && this.$refs.home_top_flow) { + // console.log(this.$refs.home_top_flow) + this.$refs.home_top_flow.fun_GetMore() + } + }, + onLoad(options) { + // if(options.partnerUserId){ + // //需要前往注册了 + // uni.navigateTo({ + // url: '/pages/login/supplier-login' + // }) + // } // console.log('home created') //这里进行一次初始化即可 // this.$http.request('get', '/api/school/area/list', { @@ -176,18 +212,54 @@ // if (res.code == 0) { // this.schools = res.data || [] // } - // }) - + // }) + // uni.navigateTo({ // url: '/sub_pages/customer/trade/detail' // }) //获取banner图 - this.$http.request('get', '/api/ua/banner/list', { - - }).then(res => { + this.$http.request('get', '/api/pub/banner/list', {}).then(res => { if (res.code == 0) { - this.banners = res.data.records || [] + 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) } }) @@ -197,18 +269,42 @@ } 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) //公告 - this.$http.request('get', '/api/ua/announcement/list', { + 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) { - this.noticeList = (res.data && res.data.records || []) + 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] @@ -241,11 +337,43 @@ } }) - + // 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() + // } + // } + // }) }, methods: { + clickBanner(item) { + if (item.id) { + uni.navigateTo({ + url: '/pages/home/components/home-banner-detail?id=' + item.id + }) + } else if (item.url) { + this.previewImg(item.url) + } + }, + goToAddress() { + if (!this.currentInfo.id) { + this.$message.showToast('请先前往登录') + return + } + uni.navigateTo({ + url: '/pages/user/address/address?source=select' + }) + }, buttonSearchFlow() { console.log('buttonSearchFlow') + uni.navigateTo({ + url: '/sub_pages/customer/trade/list?name=' + this.search_flow + }) }, pop(status) { this.hide_footer = !!status -- Gitblit v1.9.3