| | |
| | | .m-l-40 { |
| | | margin-left: 80rpx; |
| | | } |
| | | |
| | | .m-l-5{ |
| | | margin-left: 10rpx; |
| | | } |
| | | .m-l-12{ |
| | | margin-left: 24rpx; |
| | | |
| | | } |
| | | .m-r-a { |
| | | margin-right: auto; |
| | | } |
| | |
| | | margin-right: 4rpx; |
| | | |
| | | } |
| | | |
| | | .m-r-5{ |
| | | margin-right: 10rpx; |
| | | } |
| | | .m-r-10 { |
| | | margin-right: 20rpx; |
| | | |
| | |
| | | <template>
|
| | | <view class="footer flex customer-footer" style="">
|
| | | <view class="footer flex customer-footer flex-wrap-normal" style="">
|
| | | <view v-for="(item,index) in tabBar" :key="index" class="footer-item">
|
| | | <view class="item flex" :class="flg==index?'cur':''" @click="go(index,item)">
|
| | | <view class="item" :class="flg==index?'cur':''" @click="go(index,item)">
|
| | |
|
| | | <view v-if="index==0">
|
| | | <image src="../../static/images/customer/footer/footer-home-1.png" class="footer-icon" v-if="flg==0"></image>
|
| | | <image src="../../static/images/customer/footer/footer-home-0.png" class="footer-icon" v-if="flg!=0"></image>
|
| | | </view>
|
| | | <view v-if="index==1">
|
| | | <image src="../../static/images/customer/footer/footer-trade-1.png" class="footer-icon" v-if="flg==0"></image>
|
| | | <image src="../../static/images/customer/footer/footer-trade-0.png" class="footer-icon" v-if="flg!=0"></image>
|
| | | <image src="../../static/images/customer/footer/footer-trade-1.png" class="footer-icon" v-if="flg==1"></image>
|
| | | <image src="../../static/images/customer/footer/footer-trade-0.png" class="footer-icon" v-if="flg!=1"></image>
|
| | | </view>
|
| | | <view v-if="index==2">
|
| | | <image src="../../static/images/customer/footer/footer-shopping-1.png" class="footer-icon" v-if="flg==0">
|
| | | <image src="../../static/images/customer/footer/footer-shopping-1.png" class="footer-icon" v-if="flg==2">
|
| | | </image>
|
| | | <image src="../../static/images/customer/footer/footer-shopping-0.png" class="footer-icon" v-if="flg!=0">
|
| | | <image src="../../static/images/customer/footer/footer-shopping-0.png" class="footer-icon" v-if="flg!=2">
|
| | | </image>
|
| | | </view>
|
| | | <view v-if="index==3">
|
| | | <image src="../../static/images/customer/footer/footer-self-1.png" class="footer-icon" v-if="flg==1"></image>
|
| | | <image src="../../static/images/customer/footer/footer-self-0.png" class="footer-icon" v-if="flg!=1"></image>
|
| | | <image src="../../static/images/customer/footer/footer-self-1.png" class="footer-icon" v-if="flg==3"></image>
|
| | | <image src="../../static/images/customer/footer/footer-self-0.png" class="footer-icon" v-if="flg!=3"></image>
|
| | | </view>
|
| | |
|
| | | <view>
|
| | |
| | | return {
|
| | | tabBar: [{
|
| | |
|
| | | "text": "首页"
|
| | | "text": "首页",
|
| | | "pagePath":'/pages/home/home'
|
| | | },
|
| | | {
|
| | |
|
| | | "text": "交易大厅"
|
| | | "text": "交易大厅",
|
| | | "pagePath":'/sub_pages/customer/trade/trade'
|
| | | },
|
| | | {
|
| | |
|
| | | "text": "购物车"
|
| | | "text": "购物车",
|
| | | "pagePath":'/sub_pages/customer/shopping/shopping'
|
| | | },
|
| | | {
|
| | | "text": "我的"
|
| | | "text": "我的",
|
| | | "pagePath":'/pages/user/supplier-user'
|
| | | }
|
| | | ]
|
| | | }
|
| | |
| | | border-radius: 50rpx; |
| | | color: var(--topicolor); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .footer.customer-footer{ |
| | | background-color: #fff; |
| | | bottom: 0rpx; |
| | | left:0rpx; |
| | | right: 0rpx; |
| | | width: 750rpx; |
| | | .footer-item{ |
| | | flex: 1; |
| | | border-radius: 50rpx; |
| | | padding: 8rpx; |
| | | |
| | | .item { |
| | | |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | // color: #A1A6B3; |
| | | color: var(--topicgray); |
| | | flex-direction: column; |
| | | align-items: center; |
| | | text-align: center; |
| | | min-width: 100rpx; |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | color: #20613D; |
| | | min-height: 40rpx; |
| | | // .footer-bottom-brand-icon{ |
| | | // width: 90rpx; |
| | | // height:70rpx; |
| | | // } |
| | | // .footer-icon{ |
| | | // width: 50rpx; |
| | | // height: 50rpx; |
| | | // margin-top: 20rpx; |
| | | // } |
| | | |
| | | .footer-icon.0 { |
| | | width: 37rpx; |
| | | height: 43rpx; |
| | | } |
| | | .footer-icon.1 { |
| | | width: 38rpx; |
| | | height: 39rpx; |
| | | } |
| | | .footer-icon.2 { |
| | | width: 39rpx; |
| | | height: 38rpx; |
| | | } |
| | | .footer-icon.3 { |
| | | width: 31rpx; |
| | | height: 38rpx |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
| | | },
|
| | | "pages": [
|
| | | |
| | | // #ifdef PUB_CUSTOMER
|
| | | {
|
| | | "path": "pages/home/home",
|
| | |
| | | "navigationBarTitleText": "修改密码",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path" : "pages/user/address/address",
|
| | | "style" : |
| | | {
|
| | | "navigationBarTitleText" : "收货地址",
|
| | | "enablePullDownRefresh" : false
|
| | | }
|
| | | }
|
| | | ],
|
| | |
|
对比新文件 |
| | |
| | | <template> |
| | | <view class="flex home-banner-imgs"> |
| | | <view class="flex1 m-r-5"> |
| | | <image class="p1 img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/b1/b1e7dc929b53412bbea72c9ca3f9aa25%E4%BD%8D%E5%9B%BE@2x%20(1).png" ></image> |
| | | </view> |
| | | <view class="flex1 m-l-5"> |
| | | <image class="p2 img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/86/86605e258843479f828ce6749010d791%E4%BD%8D%E5%9B%BE@2x%20(2).png"></image> |
| | | <image class="p3 img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/76/76532c632d28449a9f93a4228a7b851e%E4%BD%8D%E5%9B%BE@2x%20(3).png"></image> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .home-banner-imgs{ |
| | | .p1{ |
| | | // width: 334rpx; |
| | | height: 308rpx; |
| | | width: 100%; |
| | | } |
| | | .p2{ |
| | | // width: 334rpx; |
| | | width: 100%; |
| | | height: 142rpx; |
| | | } |
| | | .p3{ |
| | | width: 100%; |
| | | margin-top: 18rpx; |
| | | // width: 334rpx; |
| | | height: 142rpx; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <view class="home-category"> |
| | | <view class="flex"> |
| | | <view class="t1">06-03(今日)第一场交易中</view> |
| | | <view class="t2">当前在售123435扎</view> |
| | | </view> |
| | | <view class="m-t-12 flex"> |
| | | <view class="item" v-for="(item,index) of list" :key="index"> |
| | | <image class="icon img100" :src="item.url"></image> |
| | | <view>{{item.name || '-'}}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | beforeMount() { |
| | | for (var i = 0; i < 10; i++) { |
| | | this.list.push({ |
| | | 'url': 'https://hmy-flower.oss-cn-shanghai.aliyuncs.com/e2/e2ee2fa7cdef458ba748261305edc57435549b9113807b6fbbfd4bfa456334d.png', |
| | | 'name': '玫瑰' |
| | | }) |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | list: [], |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .home-category { |
| | | .item { |
| | | text-align: center; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | min-width: 20%; |
| | | margin-bottom: 28rpx; |
| | | .icon { |
| | | width: 94rpx; |
| | | height: 94rpx; |
| | | border-radius: 50%; |
| | | } |
| | | } |
| | | |
| | | .t1 { |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | line-height: 50rpx; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .t2 { |
| | | margin-left: auto; |
| | | padding: 8rpx; |
| | | font-size: 24rpx; |
| | | color: #5B8C71; |
| | | line-height: 34rpx; |
| | | background: #E1F0E7; |
| | | border-radius: 4rpx; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <view class="home-price"> |
| | | <view class="flex t1"> |
| | | <view>2024-06-03 09:20:19 花满芜成交均价</view> |
| | | <uni-icons class="m-l-a m-r-0" type="right"></uni-icons> |
| | | </view> |
| | | <view class="items" style="border-top: 2rpx solid #EEEEEE;"> |
| | | <view class="flex" style="border-bottom: 2rpx solid #EEEEEE;padding-top: 24rpx;"> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- <u-divider></u-divider> --> |
| | | <view class="flex" style="padding-top: 24rpx;"> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .home-price { |
| | | margin-top: 20rpx; |
| | | height: 414rpx; |
| | | background: #FFFFFF; |
| | | border-radius: 8rpx; |
| | | padding: 20rpx; |
| | | |
| | | .items { |
| | | .line { |
| | | height: 104rpx; |
| | | background-color: #EEEEEE; |
| | | width: 2rpx; |
| | | } |
| | | |
| | | .item { |
| | | padding: 24rpx 14rpx; |
| | | |
| | | .title { |
| | | text-align: center; |
| | | font-weight: 600; |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | | .price { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #BF0000; |
| | | line-height: 44rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .desc { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .t1 { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | padding-bottom: 18rpx; |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <view class="home-top-flow"> |
| | | <view class="item flex" v-for="(item,index) of list" :key="index"> |
| | | <view class="img"> |
| | | <image class="img img100" |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png"> |
| | | </image> |
| | | <view class="level"> |
| | | A级 |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="m-l-12 info-container flex1"> |
| | | <view class="title"> |
| | | 橙色芭比 |
| | | <view class="price"> |
| | | ¥6.60/扎 |
| | | </view> |
| | | </view> |
| | | <view class="tags"> |
| | | <view class="tag red">限时抢购</view> |
| | | <view class="tag green">品质严选</view> |
| | | </view> |
| | | <view class="shop-name"> |
| | | 小石头花卉 |
| | | </view> |
| | | <view class="other-info flex"> |
| | | <view class="m-r-15"> |
| | | 已售:7 |
| | | </view> |
| | | <view class="m-r-15"> |
| | | 剩余:13 |
| | | </view> |
| | | <view class="m-r-15"> |
| | | 1支/扎 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | list: [{}, {}, {}, {}] |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .home-top-flow { |
| | | .item { |
| | | margin-top: 20rpx; |
| | | background: #FFFFFF; |
| | | border-radius: 8rpx; |
| | | padding: 10rpx; |
| | | |
| | | .info-container { |
| | | |
| | | .other-info { |
| | | margin-top: 6rpx; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | text-align: left; |
| | | } |
| | | |
| | | .shop-name { |
| | | margin-top: 14rpx; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | | .tags { |
| | | margin-top: 12rpx; |
| | | display: flex; |
| | | |
| | | .tag { |
| | | min-width: 80rpx; |
| | | padding-left: 20rpx; |
| | | padding-right: 20rpx; |
| | | line-height: 36rpx; |
| | | background: #FEE6E6; |
| | | border-radius: 21rpx; |
| | | font-size: 24rpx; |
| | | color: #CD1212; |
| | | margin-right: 12rpx; |
| | | } |
| | | |
| | | .tag.green { |
| | | color: rgba(110, 159, 102, 1); |
| | | background: rgba(202, 229, 214, 1); |
| | | border-radius: 21rpx; |
| | | // opacity: 0.57; |
| | | } |
| | | } |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | margin-top: 8rpx; |
| | | position: relative; |
| | | |
| | | .price { |
| | | position: absolute; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #CF0000; |
| | | line-height: 40rpx; |
| | | top: 0; |
| | | right: 0; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .img { |
| | | width: 206rpx; |
| | | height: 206rpx; |
| | | border-radius: 8rpx; |
| | | position: relative; |
| | | |
| | | .level { |
| | | position: absolute; |
| | | width: 66rpx; |
| | | height: 44rpx; |
| | | background: #20613D; |
| | | left: 0; |
| | | top: 0; |
| | | border-top-left-radius: 8rpx; |
| | | border-bottom-right-radius: 8rpx; |
| | | color: #FFFFFF; |
| | | line-height: 44rpx; |
| | | font-size: 24rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <view class="home-zones"> |
| | | <view class="c"> |
| | | <image class="p1 img100" :lazy-load="true" mode="aspectFit" |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/eb/eba404b98a224edc82897fe9647902e7%E4%BD%8D%E5%9B%BE@2x%20(4).png"> |
| | | </image> |
| | | <view class="c-txt-1"> |
| | | <view class="title">婚礼酒店专区</view> |
| | | <view class="flex"> |
| | | <view class="desc">查看详情</view> |
| | | <view class="right m-l-5"> |
| | | <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="c"> |
| | | <image class="p2 img100 m-t-12" :lazy-load="true" mode="aspectFit" |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/52/52deec39e6ff47efb4855cda8766f29e%E8%B7%AF%E5%BE%84%204@2x.png"> |
| | | </image> |
| | | <view class="c-txt-1" style="top: 60rpx;"> |
| | | <view class="title">特惠专区</view> |
| | | <view class="flex"> |
| | | <view class="desc">查看详情</view> |
| | | <view class="right m-l-5"> |
| | | <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="flex m-t-12"> |
| | | <view class="flex1 c m-r-5"> |
| | | <image class="p3 img100" :lazy-load="true" mode="aspectFit" |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/87/8787940a92524d7a9805a9184946cfaf%E4%BD%8D%E5%9B%BE@2x%20(5).png"> |
| | | </image> |
| | | <view class="c-txt-2"> |
| | | <view class="title">品质专区</view> |
| | | <view class="flex"> |
| | | <view class="desc">查看详情</view> |
| | | <view class="right m-l-5"> |
| | | <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="flex1 c m-l-5"> |
| | | <image class="p4 img100" :lazy-load="true" mode="aspectFit" |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/0e/0eb0917d31e64c849f250b6e0a825b25%E4%BD%8D%E5%9B%BE@2x%20(6).png"> |
| | | </image> |
| | | <view class="c-txt-2 red"> |
| | | <view class="title">秒杀专区</view> |
| | | <view class="flex"> |
| | | <view class="desc">查看详情</view> |
| | | <view class="right m-l-5"> |
| | | <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .home-zones { |
| | | margin-top: 20rpx; |
| | | |
| | | .c { |
| | | position: relative; |
| | | |
| | | .c-txt-1 { |
| | | position: absolute; |
| | | left: 38rpx; |
| | | top: 40rpx; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | color: #FFFFFF; |
| | | line-height: 50rpx; |
| | | margin-bottom: 8rpx; |
| | | } |
| | | |
| | | .desc { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #FFFFFF; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .right { |
| | | background: #FFFFFF; |
| | | border-radius: 50%; |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | margin-top: 6rpx; |
| | | position: relative; |
| | | |
| | | .icon { |
| | | position: absolute; |
| | | top: -10rpx; |
| | | left: 2rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .c-txt-2 { |
| | | position: absolute; |
| | | left: 22rpx; |
| | | top: 50rpx; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #535FCA; |
| | | line-height: 40rpx; |
| | | margin-bottom: 2rpx; |
| | | } |
| | | |
| | | .desc { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #535FCA; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | | .right { |
| | | background: #535FCA; |
| | | border-radius: 50%; |
| | | width: 24rpx; |
| | | height: 24rpx; |
| | | margin-top: 6rpx; |
| | | position: relative; |
| | | |
| | | .icon { |
| | | position: absolute; |
| | | top: -14rpx; |
| | | left: 4rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .c-txt-2.red { |
| | | .title { |
| | | color: #892E2E; |
| | | } |
| | | .desc { |
| | | color: #892E2E; |
| | | } |
| | | .right{ |
| | | background: #892E2E; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .p1 { |
| | | width: 100%; |
| | | height: 176rpx; |
| | | } |
| | | |
| | | .p2 { |
| | | width: 100%; |
| | | height: 176rpx; |
| | | |
| | | } |
| | | |
| | | .p3 { |
| | | width: 100%; |
| | | height: 176rpx; |
| | | } |
| | | |
| | | .p4 { |
| | | width: 100%; |
| | | height: 176rpx; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | .home-banner-image{ |
| | | width: 750rpx; |
| | | background-size: 100% 100%; |
| | | height: 472rpx; |
| | | height: 306rpx; |
| | | |
| | | } |
| | | swiper { |
| | | height: 472rpx; |
| | | height: 306rpx; |
| | | } |
| | | .swiper-box{ |
| | | position: relative; |
| | | swiper-item{ |
| | | background-color: #fff; |
| | | border-radius: 8rpx; |
| | | } |
| | | } |
| | | .home-shop-top{ |
| | | position: relative; |
| | | // width: 690rpx; |
| | | height: 488rpx - 36rpx; |
| | | padding: 18rpx; |
| | | padding-top: 36rpx; |
| | | padding-bottom: 0rpx; |
| | | |
| | | background: linear-gradient(360deg, #DDECE4 0%, #B8D9C6 100%) #AEDCC7; |
| | | border-radius: 20rpx; |
| | | // padding: 1; |
| | | .title{ |
| | | width: 164rpx; |
| | | height: 42rpx; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | .icon{ |
| | | position: absolute; |
| | | width: 114rpx; |
| | | height: 110rpx; |
| | | right: 48rpx; |
| | | top: 20rpx; |
| | | z-index: 1; |
| | | } |
| | | .card-list-item{ |
| | | z-index: 2; |
| | | } |
| | | } |
| | | .home-travel-top{ |
| | | position: relative; |
| | | // width: 690rpx; |
| | | min-height: 490rpx - 36rpx - 16rpx; |
| | | background: #A9DAEB; |
| | | border-radius: 20rpx; |
| | | padding: 18rpx; |
| | | padding-bottom: 16rpx; |
| | | padding-top: 36rpx; |
| | | .title{ |
| | | width: 126rpx; |
| | | height: 40rpx; |
| | | margin-bottom: 16rpx; |
| | | } |
| | | .icon{ |
| | | position: absolute; |
| | | width: 314rpx; |
| | | right: 60rpx; |
| | | top: 26rpx; |
| | | height:98rpx; |
| | | z-index: 0; |
| | | |
| | | } |
| | | /deep/ .card-list-item{ |
| | | position: relative; |
| | | z-index: 2; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | .main-container.user-home{ |
| | | min-height: 99vh; |
| | | padding: 30rpx; |
| | | background: #F7F7F7; |
| | | position: relative; |
| | | .bg-top-green{ |
| | | height: 197px; |
| | | background: #CAE5D6; |
| | | position: absolute; |
| | | left: 0rpx; |
| | | right: 0rpx; |
| | | top: 0rpx; |
| | | z-index: 0; |
| | | } |
| | | .school{ |
| | | position: relative; |
| | | z-index: 1; |
| | | } |
| | | .search-container { |
| | | display: flex; |
| | | margin: 12rpx 0rpx 20rpx 0rpx; |
| | | position: relative; |
| | | z-index: 1; |
| | | |
| | | .input { |
| | | // flex: 1; |
| | | // max-width: 400rpx; |
| | | background-color: #fff !important; |
| | | // line-height: 58rpx; |
| | | // height: 58rpx; |
| | | border-radius: 8rpx; |
| | | } |
| | | |
| | | .button { |
| | | min-width: 120rpx; |
| | | max-width: 120rpx; |
| | | margin-left: auto; |
| | | margin-right: 0rpx; |
| | | text-align: right; |
| | | line-height: 70rpx !important; |
| | | // height: 58rpx !important; |
| | | // display: flex; |
| | | } |
| | | } |
| | | } |
| | | .main-container.home{ |
| | | background-image: url('https://hmy-flower.oss-cn-shanghai.aliyuncs.com/2a/2aa62e6bd1f74456b005d3f57daa54adbg.png'); |
| | | min-height: 99vh; |
| | |
| | | <template> |
| | | <view class="main-container home"> |
| | | <view class="main-container user-home"> |
| | | <view class="bg-top-green"></view> |
| | | <!-- 顶部,可能 --> |
| | | <view class="school" :style="{'background-color': color,'padding-top':(StatusBar)+'px' |
| | | <view class="school" :style="{'padding-top':(StatusBar)+'px' |
| | | ,height:CustomBar+'rpx','line-height':CustomBar+'rpx' }"> |
| | | <view class="home-logo"></view> |
| | | |
| | | <picker @change="PickerChangeSchool" :value="schoolIndex" :range="schools" range-key="name"> |
| | | <picker @change="PickerChangeSchool" :value="areaIndex" :range="schools" range-key="name"> |
| | | <view class="picker flex"> |
| | | <!-- <text class="cuIcon-locationfill"></text> --> |
| | | <uni-icons type="location" class="m-l-15 m-r-5" size="18"></uni-icons> |
| | | <uni-icons type="location" class="m-r-5" size="18"></uni-icons> |
| | | <view> |
| | | {{ schoolIndex>=0&&schools[schoolIndex].name ? schools[schoolIndex].name : '选择校区' }} |
| | | {{ areaIndex>=0&&schools[areaIndex].name ? schools[areaIndex].name : '选择位置' }} |
| | | </view> |
| | | <!-- <text class="cuIcon-unfold margin-left-xs"></text> --> |
| | | </view> |
| | | </picker> |
| | | </view> |
| | | <!-- <view :style="{'background-color': color,'padding-top':(StatusBar)+'px',height:CustomBar+'px'}"></view> --> |
| | | |
| | | <view class="search-container m-t-12 flex"> |
| | | <view class="flex1 input"> |
| | | <u--input placeholder="请输入花名" v-model="search_flow" @confirm="buttonSearchFlow" suffixIcon="search" |
| | | :suffixIconStyle="{'font-size':'24px','color': '#20613D'}" > |
| | | </u--input> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- banner --> |
| | | <uni-swiper-dot class="uni-swiper-dot-box" @clickItem=clickItem :info="info" :current="currentBanner" |
| | |
| | | </image> |
| | | </view> |
| | | </swiper-item> |
| | | <animation-words :words="words" v-if="words&&words.length>0"></animation-words> |
| | | |
| | | </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://xy-go.oss-cn-beijing.aliyuncs.com/51/51abd2f29d104a78a5d6dcc27078716a位图@2x (4).png"> |
| | | src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/62/62ddac6297104e369aba646be704064dbanner@2x.png"> |
| | | </image> |
| | | </view> |
| | | </swiper-item> |
| | | <animation-words :words="words" v-if="words&&words.length>0"></animation-words> |
| | | |
| | | </swiper> |
| | | </uni-swiper-dot> |
| | | <!-- tip --> |
| | | <view class="p10"> |
| | | <uni-notice-bar @click="getNoticeMore" v-if="currentNotice&¤tNotice.id" class="notice-bar" |
| | | color="#333" background-color="#fff" show-get-more show-icon :scrollable="scrollable" |
| | | :text="currentNotice.title" :key="currentNotice.id" /> |
| | | <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" /> |
| | | <span v-if="!currentNotice||!currentNotice.id"> </span> |
| | | </view> |
| | | <!-- 当前分类 --> |
| | | <home-category></home-category> |
| | | <!-- 特别的几个公告图片 --> |
| | | <home-banner-imgs></home-banner-imgs> |
| | | <!-- 均价情况 --> |
| | | <home-price></home-price> |
| | | <!-- 几个专区 --> |
| | | <home-zones></home-zones> |
| | | <!-- 置顶的花列表 --> |
| | | <home-top-flow></home-top-flow> |
| | | |
| | | <!-- 各种按钮 --> |
| | | <home-buttons></home-buttons> |
| | | <!-- 推荐的成团的 --> |
| | | <view class="p15" style="padding-top: 0rpx;" v-if="tuangouList&&tuangouList.length>0"> |
| | | <view class="home-shop-top"> |
| | | <!-- <view>即将成团</view> --> |
| | | <image src="../../static/imgs/home/home-shop-top-txt.png" mode="aspectFit" class="title"></image> |
| | | <image src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit" class="icon"></image> |
| | | |
| | | <card-list-item type='shop' :dto="tuangouList[0]" @pop="pop"></card-list-item> |
| | | </view> |
| | | </view> |
| | | <!-- 出去玩的 --> |
| | | <view class="p15" style="padding-top: 0rpx;padding-bottom: 0rpx;" v-if="tripList&&tripList.length>0"> |
| | | <view class="home-travel-top"> |
| | | <!-- <view>粗去玩</view> --> |
| | | <image src="../../static/imgs/home/home-travel-top-txt.png" mode="aspectFit" class="title"></image> |
| | | <image src="../../static/imgs/home/home-travel-top-icon.png" mode="aspectFit" class="icon"></image> |
| | | <card-list-item type='travel' :dto="tripList[0]"></card-list-item> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 3个tab选项 --> |
| | | |
| | | <view class="p15" style="padding-bottom: 10rpx;"> |
| | | <!-- @change="changeTab" --> |
| | | <top-tabs :tabs="tabs" :flg.sync="tabIndex"></top-tabs> |
| | | |
| | | |
| | | |
| | | </view> |
| | | <!-- 根据不同的 --> |
| | | <view class="" style="padding-left: 30rpx;padding-right: 30rpx;"> |
| | | <view v-show="tabIndex==0" style="min-height: 400rpx;"> |
| | | <!-- 加载推荐位置的? --> |
| | | <no-data v-if="!tuangouList||tuangouList.length==0" style="width: 100%;"></no-data> |
| | | <view class="m-b-24" v-for="item of tuangouList"> |
| | | <card-list-item type='shop' :dto="item" @pop="pop"></card-list-item> |
| | | </view> |
| | | </view> |
| | | <view v-show="tabIndex==1" style="min-height: 400rpx;"> |
| | | <!-- 加载推荐位置的? --> |
| | | <no-data v-if="!tripList||tripList.length==0" style="width: 100%;"></no-data> |
| | | |
| | | <view class="m-b-24" v-for="item of tripList"> |
| | | <card-list-item type='travel' :dto="item" class="m-b-24"></card-list-item> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | <view v-show="tabIndex==2" style="margin-top: -10rpx;"> |
| | | <home-goods ref="homegoods"></home-goods> |
| | | |
| | | </view> |
| | | <view style="padding-bottom:200rpx"> |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <common-footer flg="0"></common-footer> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import homeButtons from './components/home-buttons.vue' |
| | | import homeGoods from './components/home-goods.vue' |
| | | import animationWords from '@/components/animation-words' |
| | | import homePrice from './components/home-price.vue' |
| | | import homeBannerImgs from './components/home-banner-imgs.vue' |
| | | import homeZones from './components/home-zones.vue' |
| | | import homeTopFlow from './components/home-top-flow.vue' |
| | | import homeCategory from './components/home-category.vue' |
| | | |
| | | export default { |
| | | components: { |
| | | homeButtons, |
| | | homeGoods, |
| | | animationWords |
| | | homeCategory, |
| | | homePrice, |
| | | homeBannerImgs, |
| | | homeZones, |
| | | homeTopFlow |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | search_flow: '', |
| | | CustomBar: uni.getStorageSync('CustomBar'), |
| | | StatusBar: uni.getStorageSync('StatusBar'), |
| | | // StatusBar:0, |
| | | color: '#fff', |
| | | schools: [], |
| | | schoolIndex: -1, |
| | | areaIndex: -1, |
| | | scrollable: false, |
| | | tabs: [{ |
| | | name: '团购', |
| | | id: 'shop' |
| | | }, |
| | | { |
| | | name: '粗去玩', |
| | | id: 'travel' |
| | | }, |
| | | { |
| | | name: '挖宝商品', |
| | | id: 'good' |
| | | }, |
| | | ], |
| | | tabIndex: 2, |
| | | |
| | | info: [{ |
| | | colorClass: 'uni-bg-red', |
| | | url: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg', |
| | |
| | | tripList: [], |
| | | tuangouList: [], |
| | | hide_footer: false, |
| | | words: [], //弹幕 |
| | | noticeList: [], |
| | | currentNoticeIndex: 0, |
| | | 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() { |
| | | // 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 { |
| | |
| | | onLoad() { |
| | | // console.log('home created') |
| | | //这里进行一次初始化即可 |
| | | this.$http.request('get', '/api/school/area/list', { |
| | | // this.$http.request('get', '/api/school/area/list', { |
| | | |
| | | }).then(res => { |
| | | if (res.code == 0) { |
| | | this.schools = res.data || [] |
| | | } |
| | | }) |
| | | // }).then(res => { |
| | | // if (res.code == 0) { |
| | | // this.schools = res.data || [] |
| | | // } |
| | | // }) |
| | | //获取banner图 |
| | | this.$http.request('get', '/api/ua/banner/list', { |
| | | |
| | |
| | | this.banners = res.data.records || [] |
| | | } |
| | | }) |
| | | // uni.setStorageSync('schoolId', this.school[parseInt(e.detail.value)].id); |
| | | // uni.setStorageSync('schoolIndex', parseInt(e.detail.value)); |
| | | var schoolIndex = uni.getStorageSync('schoolIndex') |
| | | if (!schoolIndex && schoolIndex !== 0) { |
| | | |
| | | var areaIndex = uni.getStorageSync('areaIndex') |
| | | if (!areaIndex && areaIndex !== 0) { |
| | | |
| | | } else { |
| | | this.schoolIndex = schoolIndex |
| | | this.areaIndex = areaIndex |
| | | } |
| | | this.changeTab(this.tabIndex) |
| | | this.changeTab(0) |
| | | this.changeTab(1) |
| | | |
| | | this.$http.request('get', '/api/brand/wish/list', { |
| | | params: { |
| | | size: 10, |
| | | show: true, |
| | | status: 'A' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 0) { |
| | | this.words = (res.data && res.data.records || []).map(item => { |
| | | return { |
| | | ...item, |
| | | randomnum: Math.floor(Math.random() * 10) + Math.floor(Math.random() * 30) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | |
| | | //公告 |
| | | this.$http.request('get', '/api/ua/announcement/list', { |
| | | params: { |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | buttonSearchFlow() { |
| | | console.log('buttonSearchFlow') |
| | | }, |
| | | pop(status) { |
| | | this.hide_footer = !!status |
| | | }, |
| | | changeBanner(e) { |
| | | this.currentBanner = e.detail.current |
| | | }, |
| | | changeTab(e) { |
| | | // this.tabIndex |
| | | if (e == 2) { |
| | | this.$nextTick(() => { |
| | | this.$refs.homegoods.updateGoods() |
| | | }) |
| | | } |
| | | if (e == 0) { |
| | | //团购 |
| | | // tripList:[], |
| | | // :[], |
| | | //可能没必要重复了先,todo |
| | | this.$http.request('get', '/api/buy/customer/group/list', { |
| | | params: { |
| | | size: 4, |
| | | status: 'A' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 0) { |
| | | this.tuangouList = res.data.records || [] |
| | | } |
| | | }) |
| | | } |
| | | if (e == 1) { |
| | | this.$http.request('get', '/api/trip/customer/list', { |
| | | params: { |
| | | size: 3, |
| | | status: 'J' |
| | | } |
| | | }).then(res => { |
| | | if (res.code == 0) { |
| | | this.tripList = res.data.records || [] |
| | | } |
| | | }) |
| | | } |
| | | // console.log('changeTab',e) |
| | | // updateGoods |
| | | // |
| | | }, |
| | | |
| | | getNoticeMore() { |
| | | if (this.currentNotice.id) { |
| | | // uni.navigateTo({ |
| | | // url: '/pages/notice/notice?id=' + this.currentNotice.id |
| | | // }) |
| | | } |
| | | uni.navigateTo({ |
| | | url: '/pages/notice/list?id=' + this.currentNotice.id |
| | | }) |
| | | }, |
| | | PickerChangeSchool(e) { |
| | | if (e.detail.value == '-1') { |
| | | this.$message.showToast('未选择校区') |
| | | this.$message.showToast('未选择位置') |
| | | return |
| | | } |
| | | console.log(' this.schools', this.schools, parseInt(e.detail.value), e); |
| | | // this.setData({ |
| | | // index: e.detail.value, |
| | | // schoolInfo: this.school[parseInt(e.detail.value)], |
| | | // s_id: this.school[parseInt(e.detail.value)].s_id, |
| | | // current: 0 |
| | | // }); |
| | | |
| | | this.schoolIndex = parseInt(e.detail.value) |
| | | uni.setStorageSync('schoolId', this.schools[parseInt(e.detail.value)].id); |
| | | uni.setStorageSync('schoolIndex', parseInt(e.detail.value)); |
| | | // if (uni.getStorageSync('token')) { |
| | | // this.userChangeSchool(this.school[parseInt(e.detail.value)].s_id) |
| | | // } |
| | | // this.getSchoolInfo(this.school[parseInt(e.detail.value)].s_id); |
| | | // this.getSysparment(); //全局加载变量设置为真,信息圈的列表需要重新加载 |
| | | // // this.getOrderData(); |
| | | // // this.getHistoryList(); |
| | | // this.getRank(); |
| | | // this.setData({ |
| | | // dataList: [] |
| | | // }); |
| | | |
| | | this.areaIndex = parseInt(e.detail.value) |
| | | uni.setStorageSync('areaId', this.schools[parseInt(e.detail.value)].id); |
| | | uni.setStorageSync('areaIndex', parseInt(e.detail.value)); |
| | | |
| | | }, |
| | | |
| | | } |
对比新文件 |
| | |
| | | <template> |
| | | <!-- 收获地址列表 --> |
| | | <view class="p15 container-address"> |
| | | <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> |
| | | |
| | | <!-- 循环 --> |
| | | <view v-for="(item,index) of list" :key="index" class="location-each"> |
| | | <view class="flex"> |
| | | <view class="container-info"> |
| | | <view class="flex"> |
| | | <view class="name">{{item.name || '-'}}</view> |
| | | <view class="tel">{{item.tel||'-'}}</view> |
| | | </view> |
| | | <view class="address"> |
| | | {{item.address}} |
| | | |
| | | </view> |
| | | </view> |
| | | <!-- <view class="h-line"></view> --> |
| | | <view class="edit" @click="()=>{ |
| | | this.submitForm = { |
| | | ...item |
| | | } |
| | | openAddressForm() |
| | | }"> |
| | | <uni-icons type="compose" class="icon" color="#666666"></uni-icons> |
| | | </view> |
| | | </view> |
| | | <view class="v-line"></view> |
| | | <view class="flex"> |
| | | <view class="flex" @click="changeDefaultAddress(item,index)"> |
| | | <!-- <label class="radio flex" > --> |
| | | <!-- <radio value="r1" :checked="item.defaulted" disabled |
| | | style="transform:scale(0.6)" v-if="item.defaulted" /> |
| | | <radio value="r1" |
| | | style="transform:scale(0.6)" :checked="item.defaulted" v-if="!item.defaulted" @change="changeDefaultAddress(item,index)"/> |
| | | --> |
| | | |
| | | <!-- </label> --> |
| | | <view class="radio m-t-2 m-r-10" :class="[item.defaulted?'select':'']"> |
| | | |
| | | </view> |
| | | <span class="desc">{{item.defaulted?'默认地址:':'当前地址:'}}{{item.schoolAreaStr||''}} |
| | | {{item.blockStr||''}} |
| | | {{item.room||''}}</span> |
| | | <!-- 当前地址/默认地址勾选 --> |
| | | </view> |
| | | <view class="desc del t-red" @click="deleteAddress(item)"> |
| | | 删除 |
| | | </view> |
| | | <view class="desc del t-green m-l-10" v-if="source==='select'" @click="selectAddress(item)"> |
| | | 选择此地址 |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | <view style="height: 92rpx;width: 690rpx;"> |
| | | |
| | | </view> |
| | | <view class="button-green button-fixed-bottom" style="width: 690rpx;line-height: 92rpx;height: 92rpx;" @click=" ()=>{ |
| | | delete this.submitForm.id |
| | | this.submitForm['name'] = '' |
| | | this.submitForm['tel'] = '' |
| | | this.submitForm['tel'] = '' |
| | | this.submitForm['area'] = '' |
| | | |
| | | openAddressForm() |
| | | }">添加收货地址</view> |
| | | |
| | | <uni-popup ref="popup_form" type="top" :mask-click="false"> |
| | | <view class="popup-address-form"> |
| | | <view class="close-parent"> |
| | | {{submitForm.id?'新增':'编辑'}}收货地址 |
| | | <uni-icons class="close" type="closeempty" @click="closeAddressForm"></uni-icons> |
| | | </view> |
| | | <!--收货人、手机号、校区、详细地址 --> |
| | | <view class="submit form"> |
| | | <view class="form-item"> |
| | | <view class="form-item-label require"> |
| | | 收货人 |
| | | </view> |
| | | <view class="form-item-value"> |
| | | <input v-model="submitForm.name" placeholder="请输入收货人" class="form-input"></input> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="form-item-label require"> |
| | | 请选择收获地址 |
| | | </view> |
| | | <view class="form-item-value"> |
| | | <input v-model="submitForm.room" placeholder="请选择收获地址" disabled class="form-input"></input> |
| | | <!-- todo 点击定位 --> |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="form-item-label require"> |
| | | 详细地址 |
| | | </view> |
| | | <view class="form-item-value"> |
| | | <input v-model="submitForm.address" placeholder="请输入详细地址" class="form-input"></input> |
| | | |
| | | </view> |
| | | </view> |
| | | <view class="form-item"> |
| | | <view class="form-item-label"> |
| | | 是否默认 |
| | | </view> |
| | | <view class="form-item-value"> |
| | | <radio value="r1" :checked="submitForm.defaulted" |
| | | @click="submitForm.defaulted=!submitForm.defaulted" |
| | | style="transform:scale(0.6);margin-top: -8rpx;" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="button-green m-t-15" @click="saveOrUpdateAddress">保存</view> |
| | | </view> |
| | | </uni-popup> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | async onPullDownRefresh() { |
| | | this.page.current = 0 |
| | | await this.getList() |
| | | uni.stopPullDownRefresh() |
| | | }, |
| | | async onLoad(options) { |
| | | // this.list = [{}, {}] |
| | | this.source = options.source || '' |
| | | this.listApi = '/api/address/customer/list' |
| | | await this.getList() |
| | | |
| | | }, |
| | | data() { |
| | | return { |
| | | source: '', |
| | | submitForm: { |
| | | name: '', |
| | | tel: '', |
| | | address: '', |
| | | schoolArea: '', |
| | | block: '', |
| | | room: '', |
| | | defaulted: false |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | async changeDefaultAddress(item, index) { |
| | | if (item.defaulted) { |
| | | return |
| | | } |
| | | this.$nextTick(() => { |
| | | // item.defaulted = false |
| | | // this.$set(item,'defaulted',false) |
| | | this.$message.confirm('确定设置此地址为默认地址吗').then(async res => { |
| | | this.$message.showLoading() |
| | | var { |
| | | code |
| | | } = await this.$http.request('post', '/api/address/customer/default/' + |
| | | item.id, {}) |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | for (var dto of this.list) { |
| | | dto.defaulted = false |
| | | } |
| | | this.$message.showToast('设置成功') |
| | | item.defaulted = true |
| | | this.$store.commit('setDefaultAddress', { |
| | | ...item |
| | | }) |
| | | |
| | | } |
| | | }, err => { |
| | | this.$nextTick(() => { |
| | | this.list[index].defaulted = false |
| | | this.$forceUpdate() |
| | | console.log('err', err, this.list[index]) |
| | | }) |
| | | |
| | | |
| | | }) |
| | | }) |
| | | }, |
| | | async selectAddress(item) { |
| | | await this.$message.confirm('确定选择此地址作为收获地址吗') |
| | | //携带,然后返回 |
| | | this.$store.commit('setDefaultAddress', { |
| | | ...item |
| | | }) |
| | | this.backpage() |
| | | }, |
| | | async deleteAddress(item) { |
| | | await this.$message.confirm('确定删除此地址吗') |
| | | this.$message.showLoading() |
| | | var { |
| | | code |
| | | } = await this.$http.request('get', '/api/address/customer/delete/' + item.id, {}) |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | this.$message.showToast('删除成功') |
| | | setTimeout(() => { |
| | | this.page.current = 1 |
| | | this.getList() |
| | | }, 500) |
| | | } |
| | | }, |
| | | async openAddressForm() { |
| | | if (this.submitForm.id) { |
| | | this.$message.showLoading() |
| | | var { |
| | | data |
| | | } = await this.$http.request('get', '/api/address/customer/get/' + this.submitForm.id, {}) |
| | | |
| | | |
| | | if (data) { |
| | | this.submitForm = { |
| | | ...this.submitForm, |
| | | ...data |
| | | } |
| | | this.blockIndex = -1 |
| | | this.schoolIndex = -1 |
| | | } |
| | | this.$message.hideLoading() |
| | | } else { |
| | | this.submitForm = { |
| | | name: this.currentInfo && this.currentInfo.nickName || '', |
| | | tel: this.currentInfo && this.currentInfo.tel || '', |
| | | address: '', |
| | | schoolArea: '', |
| | | block: '', |
| | | room: '', |
| | | defaulted: false |
| | | } |
| | | this.schoolIndex = -1 |
| | | this.blockIndex = -1 |
| | | this.blocks = [] |
| | | } |
| | | |
| | | this.$refs.popup_form.open() |
| | | |
| | | }, |
| | | closeAddressForm() { |
| | | this.$refs.popup_form.close() |
| | | |
| | | }, |
| | | async saveOrUpdateAddress() { |
| | | if (!this.checkFormValues(this.submitForm, ['tel', 'name', 'address'])) { |
| | | this.$message.showToast('字段未填写完整') |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | const { |
| | | code |
| | | } = await this.$http.request('post', '/api/address/customer/' + (this.submitForm.id ? 'edit' : |
| | | 'new'), { |
| | | data: this.submitForm |
| | | }) |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | this.$refs.popup_form.close() |
| | | this.$message.showToast(this.submitForm.id ? '修改成功' : '新增成功') |
| | | |
| | | setTimeout(() => { |
| | | this.page.current = 1 |
| | | this.getList() |
| | | }, 300) |
| | | } |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container-address { |
| | | .popup-address-form { |
| | | background: #FFFFFF; |
| | | border-radius: 16rpx; |
| | | // width: 690rpx; |
| | | height: 882rpx; |
| | | margin-top: 120rpx; |
| | | margin-left: 30rpx; |
| | | margin-right: 30rpx; |
| | | padding: 24rpx 36rpx; |
| | | |
| | | .submit { |
| | | margin-top: 30rpx; |
| | | |
| | | .form-input { |
| | | height: 36rpx; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .location-each { |
| | | background: #FFFFFF; |
| | | border-radius: 16rpx; |
| | | margin-bottom: 24rpx; |
| | | padding: 36rpx; |
| | | |
| | | .name { |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | text-align: left; |
| | | font-style: normal; |
| | | } |
| | | |
| | | .tel { |
| | | font-size: 28rpx; |
| | | color: #666666; |
| | | line-height: 40rpx; |
| | | text-align: left; |
| | | font-style: normal; |
| | | padding-top: 4rpx; |
| | | margin-left: 20rpx; |
| | | } |
| | | |
| | | .address { |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | text-align: left; |
| | | font-style: normal; |
| | | } |
| | | |
| | | .desc { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | text-align: left; |
| | | font-style: normal; |
| | | } |
| | | |
| | | .del { |
| | | // vertical-align: baseline; |
| | | margin-left: auto; |
| | | margin-right: 6rpx; |
| | | margin-top: 4rpx; |
| | | } |
| | | |
| | | .container-info { |
| | | max-width: 540rpx; |
| | | } |
| | | |
| | | .h-line { |
| | | width: 2rpx; |
| | | height: 46rpx; |
| | | background-color: #EEEEEE; |
| | | margin-left: 28rpx; |
| | | margin-right: 24rpx; |
| | | } |
| | | |
| | | .v-line { |
| | | width: 638rpx; |
| | | height: 2rpx; |
| | | // border: 2rpx solid #EEEEEE; |
| | | background-color: #EEEEEE; |
| | | margin-top: 24rpx; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .edit { |
| | | // min-width: 80rpx; |
| | | width: fit-content; |
| | | margin-left: auto; |
| | | margin-right: 0rpx; |
| | | display: flex; |
| | | position: relative; |
| | | |
| | | .icon { |
| | | // margin: 0 auto; |
| | | // mar |
| | | margin-left: auto; |
| | | margin-right: auto; |
| | | margin-top: 20rpx; |
| | | display: block; |
| | | |
| | | } |
| | | } |
| | | |
| | | .edit::before { |
| | | content: " "; |
| | | width: 2rpx; |
| | | height: 46rpx; |
| | | background-color: #EEEEEE; |
| | | position: absolute; |
| | | left: -24rpx; |
| | | top: 20rpx; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | mode="scaleToFill" />
|
| | |
|
| | | <view class="title" style="position: relative;">
|
| | | 我的
|
| | | 个人中心
|
| | |
|
| | | </view>
|
| | | <view class="flex user-info" v-if="currentInfo&&(currentInfo.id)">
|
| | | <!-- v-if="currentInfo&&(currentInfo.id)" -->
|
| | | <view class="flex user-info">
|
| | | <!-- 头像 -->
|
| | | <image class="user-icon" v-if="!currentInfo.picture" src="../../static/imgs/home/home-shop-top-icon.png"
|
| | | mode="aspectFit"></image>
|
| | | <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
|
| | |
|
| | | <view class="name">
|
| | | <view class="t1">
|
| | |
|
| | |
|
| | | <view class="name" v-if="currentInfo.id">
|
| | | <view class="t1" >
|
| | | {{ (!!currentInfo.supplierDTO?(currentInfo.supplierDTO.name):"") || currentInfo.nickName || currentInfo.loginName || '-'}}<span
|
| | | v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status!=='P'">
|
| | | ({{currentInfo.supplierDTO?currentInfo.supplierDTO.statusStr:''}})</span>
|
| | | </view>
|
| | | <view class="t2">{{currentInfo.tel || '暂无电话'}}</view>
|
| | | </view>
|
| | | <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="getUserProfile" style="font-size: 48rpx;margin-top: 16rpx;">
|
| | | {{'点击登陆'}}
|
| | | </view>
|
| | | <image class="icon-setting" src="../../static/common/icon-setting.png" mode="aspectFit"></image>
|
| | | </view>
|
| | | <!-- #ifdef PUB_CUSTOMER -->
|
| | | <view class="customer-info-records">
|
| | | <view class="item">
|
| | | <view class="num">59</view>
|
| | | <view class="name">我的收藏</view>
|
| | | </view>
|
| | | <view class="line"></view>
|
| | | <view class="item">
|
| | | <view class="num">5</view>
|
| | | <view class="name">关注店铺</view>
|
| | | </view>
|
| | | <view class="line"></view>
|
| | | <view class="item">
|
| | | <view class="num">87</view>
|
| | | <view class="name">浏览记录</view>
|
| | | </view>
|
| | | </view>
|
| | | <!-- #endif -->
|
| | |
|
| | |
|
| | | </view>
|
| | | <!-- #ifdef PUB_CUSTOMER -->
|
| | | <view class="user-utils m-20" v-if="selftype==='customer'">
|
| | | <view class="user-util m-t-12 user-customer-order-infos">
|
| | | <view class="user-utils m-20 user-customer-order-infos" v-if="selftype==='customer'||!selftype">
|
| | | <view class="user-util m-t-12">
|
| | | <view class="title flex">
|
| | | <view>我的订单</view>
|
| | | <view class="m-r-a m-r-0 more">全部订单<uni-icons type="right"></uni-icons></view>
|
| | | <view class="flex1">我的订单</view>
|
| | | <view class="m-r-a m-r-0 more">全部订单<uni-icons class="" type="right"
|
| | | size="12"></uni-icons></view>
|
| | | </view>
|
| | | <view class="flex order-icons-container">
|
| | | <view class="order-icons">
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="user-utils m-20" v-if="selftype==='customer'">
|
| | | <view class="user-utils m-20" v-if="selftype==='customer'||!selftype">
|
| | | <view class="user-util m-t-12 user-customer-service-infos">
|
| | | <view class="title flex">
|
| | | <view>我的服务</view>
|
| | |
| | | <image src="../../static/images/customer/service/service-icon-2.png" class="service-icon ">
|
| | | </image>
|
| | | <view>我的收藏</view>
|
| | | </view> |
| | | <view class="service-icons"> |
| | | <image src="../../static/images/customer/service/service-icon-3.png" class="service-icon "> |
| | | </image> |
| | | <view>地址管理</view> |
| | | </view> |
| | | <view class="service-icons"> |
| | | <image src="../../static/images/customer/service/service-icon-4.png" class="service-icon "> |
| | | </image> |
| | | <view>售后规则</view> |
| | | </view> |
| | | <view class="service-icons"> |
| | | <image src="../../static/images/customer/service/service-icon-5.png" class="t2 service-icon "> |
| | | </image> |
| | | <view>新手帮助</view> |
| | | </view> |
| | | <view class="service-icons"> |
| | | <image src="../../static/images/customer/service/service-icon-6.png" class="t2 service-icon "> |
| | | </image> |
| | | <view>运费详查</view> |
| | | </view>
|
| | | <view class="service-icons" @click="goto('/pages/user/address/address',true)">
|
| | | <image src="../../static/images/customer/service/service-icon-3.png" class="service-icon ">
|
| | | </image>
|
| | | <view>地址管理</view>
|
| | | </view>
|
| | | <view class="service-icons">
|
| | | <image src="../../static/images/customer/service/service-icon-4.png" class="service-icon ">
|
| | | </image>
|
| | | <view>售后规则</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="flex service-icons-container">
|
| | | <view class="service-icons">
|
| | | <image src="../../static/images/customer/service/service-icon-5.png" class="t2 service-icon ">
|
| | | </image>
|
| | | <view>新手帮助</view>
|
| | | </view>
|
| | | <view class="service-icons">
|
| | | <image src="../../static/images/customer/service/service-icon-6.png" class="t2 service-icon ">
|
| | | </image>
|
| | | <view>运费详查</view>
|
| | | </view>
|
| | | <view class="service-icons"></view>
|
| | | <view class="service-icons"></view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | <uni-icons type="right"></uni-icons>
|
| | | </view>
|
| | | </view>
|
| | | <view class="user-util m-t-12 " @click="callTel" v-if="selftype==='supplier'||selftype==='customer'">
|
| | | <view class="user-util m-t-12 " @click="callTel"
|
| | | v-if="selftype==='supplier'||selftype==='customer' || !selftype">
|
| | | <view class="title">我的客服</view>
|
| | | <view class="flex">
|
| | | <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
|
| | |
| | | </view>
|
| | |
|
| | |
|
| | | |
| | | <!-- #ifdef PUB_CUSTOMER --> |
| | | <view style="padding-bottom:200rpx"> |
| | | </view> |
| | | <common-footer flg="4"></common-footer> |
| | | <!-- #endif --> |
| | | <!-- #ifndef PUB_CUSTOMER --> |
| | |
|
| | | <!-- #ifdef PUB_CUSTOMER -->
|
| | | <view style="padding-bottom:200rpx">
|
| | | </view>
|
| | | <common-footer flg="3"></common-footer>
|
| | | <!-- #endif -->
|
| | | <!-- #ifndef PUB_CUSTOMER -->
|
| | | <view class="button-login-out topic-gray" @click="clearlogout">
|
| | | 退出登录
|
| | | </view>
|
| | |
|
| | | <view style="padding-bottom:200rpx">
|
| | | </view> |
| | | <common-footer flg="1"></common-footer> |
| | | </view>
|
| | | <common-footer flg="1"></common-footer>
|
| | | <!-- #endif -->
|
| | | |
| | |
|
| | |
|
| | |
|
| | | </view>
|
| | |
| | | .user-customer-order-infos{ |
| | | padding-top: 0rpx; |
| | | .more{ |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | |
| | | .order-icon.dsh{ |
| | | width: 48rpx; |
| | | height: 46rpx; |
| | | margin-top: 3rpx; |
| | | margin-top: 6rpx; |
| | | } |
| | | .order-icon.sh{ |
| | | width: 48rpx; |
| | | height: 46rpx; |
| | | margin-top: 3rpx; |
| | | margin-top: 6rpx; |
| | | } |
| | | } |
| | | .order-icons:last-child{ |
| | |
| | | margin: 0 auto; |
| | | margin-top: 24rpx; |
| | | text-align: center; |
| | | .service-icons{ |
| | | font-size: 24rpx; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | .service-icon{ |
| | | height: 52rpx; |
| | | width: 52rpx; |
| | | } |
| | | .service-icons.t2{ |
| | | .service-icon.t2{ |
| | | height: 52rpx; |
| | | width: 56rpx; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | .customer-info-records{ |
| | | background-color: rgba(255, 255, 255, 0.46); |
| | | border-radius: 12rpx; |
| | | padding: 22rpx; |
| | | display: flex; |
| | | margin-top: 54rpx; |
| | | .item{ |
| | | flex: 1; |
| | | text-align: center; |
| | | .num{ |
| | | font-weight: 600; |
| | | font-size: 40rpx; |
| | | color: #20613D; |
| | | line-height: 56rpx; |
| | | } |
| | | .name{ |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | font-weight: 600; |
| | | color: #000000; |
| | | line-height: 34rpx; |
| | | } |
| | | } |
| | | .line{ |
| | | width: 2rpx; |
| | | height: 64rpx; |
| | | background-color: #BBCCC2; |
| | | } |
| | | } |
| | |
| | | .icon-setting{ |
| | | position: absolute; |
| | | right: 0rpx; |
| | | top: -30rpx; |
| | | top: 50rpx; |
| | | height: 54rpx; |
| | | width: 54rpx; |
| | | } |
| | |
| | | // display: inline-block; |
| | | // margin-left: auto; |
| | | // margin-right: auto; |
| | | } |
| | | .order-icon.tg{ |
| | | margin-top: -8rpx; |
| | | width: 64rpx; |
| | | height: 64rpx; |
| | | } |
| | | .order-icon.cqw{ |
| | | // margin-top: 16rpx; |
| | | margin-top: -2rpx; |
| | | width: 54rpx; |
| | | height: 58rpx; |
| | | } |
| | | .order-icon.syst{ |
| | | // margin-top: 12rpx; |
| | | // margin-top: 0rpx; |
| | | width: 58rpx; |
| | | height: 56rpx; |
| | | } |
| | | .order-icon.wbsp{ |
| | | margin-top: -10rpx; |
| | | width: 70rpx; |
| | | height: 66rpx; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <common-footer flg="2"></common-footer> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | <view class="container-canteen" style="min-height: calc(100vh - 20rpx );"> |
| | | |
| | | <view class="canteen-items" style="min-height: calc(100vh - 360rpx);"> |
| | | <view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;"> |
| | | |
| | | </view> |
| | | <no-data v-if="(!list||list.length==0)&&true" style="width: 100%;margin-top: 220rpx;"></no-data> |
| | | <view class="" style="display: flex;flex-wrap: inherit;" v-else> |
| | | <view class="type-list"> |
| | | <view v-for="(item,index) of types" @click="changeType(item)" |
| | | :class="[query.typeId==item.id?'current':'']" :key="index" class="p10 flex type-item"> |
| | | {{item.name || '-'}} |
| | | </view> |
| | | </view> |
| | | <view class="canteen-item-container"> |
| | | <view v-for="(item,index) of listFilter" :key="item.id" class="p10 canteen-item list" |
| | | style="display: flex;flex-wrap: inherit;"> |
| | | <view class="m-r-10"> |
| | | <image :src="item.cover" mode="scaleToFill" class="cover" @click="previewImg(item.cover)"> |
| | | </image> |
| | | </view> |
| | | <view class="cateen_infos list"> |
| | | <view class="title">{{item.name}}</view> |
| | | <view class="desc">月售:{{item.monthSale || '0'}}</view> |
| | | <view class="flex bottom-buttons flex"> |
| | | <view class="price flex"> |
| | | <view class="icon">¥</view> |
| | | <view class='num'>{{item.price || '-'}}</view> |
| | | </view> |
| | | <view class="icons flex"> |
| | | <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32" |
| | | @click="mulnum(item)"></uni-icons> |
| | | <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view> |
| | | <uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view style="padding-bottom:100rpx"> |
| | | </view> |
| | | </view> |
| | | |
| | | <footer-msg v-if="query.block&&query.schoolArea" |
| | | :more="page.total>0&&page.total>page.current*page.size"></footer-msg> |
| | | |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | |
| | | |
| | | |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <common-footer flg="1"></common-footer> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | mapState |
| | | } from 'vuex' |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | list: [], |
| | | showpop: false, |
| | | query: { |
| | | name: '', |
| | | // status:'', |
| | | schoolArea: '', |
| | | schoolAreaStr: '', |
| | | block: '', |
| | | blockStr: '', |
| | | typeId: '', |
| | | }, |
| | | types: [{ |
| | | name: '全部', |
| | | id: '' |
| | | }], |
| | | schools: [], |
| | | schoolIndex: -1, |
| | | blockIndex: -1, |
| | | blocks: [], |
| | | shoptotal: 0, |
| | | cal: 0, |
| | | } |
| | | }, |
| | | async onLoad() { |
| | | // this.list = [{ |
| | | // 'shopnum': 0 |
| | | // }, { |
| | | // 'shopnum': 1 |
| | | // }] |
| | | |
| | | //加载分类 |
| | | this.$http.request('get', '/api/canteen/goods/type/list', { |
| | | params: { |
| | | size: 100 |
| | | } |
| | | }).then(async res => { |
| | | if (res.code == 0) { |
| | | this.types = res.data && res.data.records || [] |
| | | this.types.unshift({ |
| | | name: '全部', |
| | | id: '' |
| | | }); |
| | | |
| | | } |
| | | }) |
| | | |
| | | this.listApi = '/api/canteen/customer/goods/list' |
| | | |
| | | // this.getList() |
| | | //加载校区、楼栋 |
| | | this.$http.request('get', '/api/school/area/list', { |
| | | |
| | | }).then(async res => { |
| | | if (res.code == 0) { |
| | | this.schools = res.data || [] |
| | | // this.schools = [{ |
| | | // 'name': '全部', |
| | | // 'id': '', |
| | | // }] |
| | | // for (var item of arr) { |
| | | // this.schools.push(item) |
| | | // } |
| | | } |
| | | console.log('schools', this.schools) |
| | | var schoolIndex = uni.getStorageSync('schoolIndex') |
| | | if (!schoolIndex && schoolIndex !== 0) { |
| | | // await this.getList() |
| | | // this.list.forEach(item => { |
| | | // if (!item.shopnum) { |
| | | // item.shopnum = 0 |
| | | // } |
| | | // }) |
| | | } else { |
| | | this.schoolIndex = schoolIndex |
| | | if (this.schoolIndex >= 0) { |
| | | this.PickerChangeSchool({ |
| | | detail: { |
| | | value: this.schoolIndex |
| | | } |
| | | }) |
| | | // await this.getList() |
| | | // this.list.forEach(item => { |
| | | // if (!item.shopnum) { |
| | | // item.shopnum = 0 |
| | | // } |
| | | // }) |
| | | } |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | changeType(item) { |
| | | this.query.typeId = item.id || '' |
| | | }, |
| | | async PickerChangeSchool(e) { |
| | | if (e.detail.value == '-1') { |
| | | this.$message.showToast('未选择校区') |
| | | return |
| | | } |
| | | this.schoolIndex = parseInt(e.detail.value) |
| | | this.query.schoolArea = this.schools[this.schoolIndex].id |
| | | this.blockIndex = -1 |
| | | |
| | | this.$message.showLoading() |
| | | var { |
| | | data |
| | | } = await this.$http.request('get', '/api/school/block/list', { |
| | | params: { |
| | | schoolArea: this.query.schoolArea, |
| | | size: 200 |
| | | } |
| | | }) |
| | | |
| | | this.blocks = data && data.records || [] |
| | | // var arr = data.records || [] |
| | | // this.blocks = [{ |
| | | // 'name': '全部', |
| | | // 'id': '', |
| | | // }] |
| | | // for (var item of arr) { |
| | | // this.blocks.push(item) |
| | | // } |
| | | this.$message.hideLoading() |
| | | if (this.blocks.length >= 1) { |
| | | this.query.block = this.blocks[0].id |
| | | this.query.blockStr = this.blocks[0].name |
| | | this.page.current = 1 |
| | | this.blockIndex = 0 |
| | | this.list = [] |
| | | this.getList() |
| | | } else { |
| | | this.page.current = 1 |
| | | this.list = [] |
| | | } |
| | | |
| | | |
| | | |
| | | }, |
| | | async PickerChangeBlock(e) { |
| | | if (e.detail.value == '-1') { |
| | | this.$message.showToast('未选择楼栋') |
| | | return |
| | | } |
| | | this.blockIndex = parseInt(e.detail.value) |
| | | this.query.block = this.blocks[this.blockIndex].id |
| | | this.page.current = 1 |
| | | // this.list = [] |
| | | this.list = [] |
| | | // this.getList() |
| | | await this.getList() |
| | | this.list.forEach(item => { |
| | | if (!item.shopnum) { |
| | | item.shopnum = 0 |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | mulnum(item) { |
| | | if (item.shopnum > 0) { |
| | | item.shopnum -= 1 |
| | | } |
| | | this.shoptotal -= 1 |
| | | this.cal += 1 |
| | | this.$forceUpdate() |
| | | |
| | | }, |
| | | addnum(item) { |
| | | // console.log('addnum', item) |
| | | if (item.shopnum) { |
| | | item.shopnum += 1 |
| | | } else { |
| | | item.shopnum = 1 |
| | | } |
| | | this.shoptotal += 1 |
| | | this.cal += 1 |
| | | this.$forceUpdate() |
| | | }, |
| | | openShopDetail() { |
| | | // this.showpop = false |
| | | // this.$forceUpdate() |
| | | this.cal += 1 |
| | | this.$refs.popup_shop_detail.open() |
| | | this.$nextTick(() => { |
| | | this.$refs.addressselect && this.$refs.addressselect.init() |
| | | }) |
| | | }, |
| | | closeShopDetail() { |
| | | // this.showpop = true |
| | | this.$refs.popup_shop_detail.close() |
| | | }, |
| | | async submitGood() { |
| | | var values = [] |
| | | for (var item of this.list) { |
| | | if (item.shopnum > 0) { |
| | | values.push({ |
| | | id: item.id, |
| | | num: item.shopnum |
| | | }) |
| | | } |
| | | } |
| | | //购买 |
| | | if (!this.address.id) { |
| | | this.$message.showToast('请先选择收获地址') |
| | | return |
| | | } |
| | | |
| | | await this.$message.confirm('确定购买吗?') |
| | | this.$message.showLoading() |
| | | const { |
| | | code, |
| | | data |
| | | } = await this.$http.request('post', '/api/canteen/customer/order', { |
| | | data: { |
| | | customerAddress: (this.address.schoolAreaStr || '') + (this.address.blockStr || '') + ( |
| | | this |
| | | .address.room || '') + (this.address.address || ''), |
| | | customerTel: this.address.tel, |
| | | customer: this.address.name, |
| | | goodsList: values, //规格 |
| | | } |
| | | }) |
| | | |
| | | this.$message.hideLoading() |
| | | if (code == 0) { |
| | | |
| | | this.list.forEach(item => { |
| | | item.shopnum = 0 |
| | | }) |
| | | this.shoptotal = 0 |
| | | this.cal += 1 |
| | | this.$refs.popup_shop_detail.close() |
| | | this.$forceUpdate() |
| | | |
| | | //todo,预支付 |
| | | //深夜食堂的逻辑不太一样 |
| | | if (true) { |
| | | const orderInfo = await this.$http.request('get', '/api/canteen/customer/payment/' + data |
| | | .orderId, {}) |
| | | //支付准备 |
| | | var info = orderInfo.data |
| | | let that = this |
| | | wx.requestPayment({ |
| | | ...info, |
| | | success(res) { |
| | | console.log('pay success', res) |
| | | uni.navigateTo({ |
| | | url: '/pages/canteen/canteen-success/canteen-success' |
| | | }) |
| | | }, |
| | | fail(err) { |
| | | console.error('pay fail', err) |
| | | that.$message.showToast('支付失败') |
| | | } |
| | | }) |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: '/pages/canteen/canteen-success/canteen-success' |
| | | }) |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState({ |
| | | address: state => { |
| | | return state.defaultaddress || {} |
| | | }, |
| | | }), |
| | | selectprices() { |
| | | var arr = 0 |
| | | for (var item of this.list) { |
| | | if (item.shopnum > 0) { |
| | | // arr.push(item) |
| | | arr += (item.price >= 0 ? item.price : 0) * item.shopnum |
| | | } |
| | | } |
| | | if (this.cal > 0) { |
| | | return arr |
| | | |
| | | } |
| | | return 0 |
| | | }, |
| | | selectgoods() { |
| | | var arr = [] |
| | | for (var item of this.list) { |
| | | if (item.shopnum > 0) { |
| | | arr.push(item) |
| | | } |
| | | } |
| | | if (this.cal > 0) { |
| | | return arr |
| | | |
| | | } |
| | | return arr |
| | | |
| | | }, |
| | | listFilter() { |
| | | if (this.query.typeId) { |
| | | var arr = [] |
| | | if (this.list && this.list.length > 0) { |
| | | for (var item of this.list) { |
| | | if (item.typeId === this.query.typeId || item.type === this.query.typeId) { |
| | | arr.push(item) |
| | | } |
| | | } |
| | | } |
| | | return arr |
| | | } else { |
| | | return this.list |
| | | } |
| | | |
| | | }, |
| | | // shoptotal() { |
| | | // var a = 0 |
| | | // for (var item of this.list) { |
| | | // a += item.shopnum || 0 |
| | | // } |
| | | // console.log('shoptotal',a,this.list) |
| | | // return a |
| | | // } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | <style lang="scss" scoped> |
| | | .container-canteen { |
| | | background-color: #FFFFFF; |
| | | |
| | | </style> |
| | | .type-list { |
| | | max-width: 178rpx; |
| | | width: 178rpx; |
| | | min-width: 178rpx; |
| | | background: #EEF7F5; |
| | | border-radius: 8rpx; |
| | | min-height: calc(100vh - 300rpx); |
| | | max-height: calc(100vh - 300rpx); |
| | | overflow-y: scroll; |
| | | margin-left: 30rpx; |
| | | |
| | | .type-item { |
| | | text-align: center; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 88rpx; |
| | | // padding-left: 30rpx; |
| | | // padding-right: 30rpx; |
| | | } |
| | | |
| | | .type-item.current { |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | color: #04BA97; |
| | | } |
| | | } |
| | | |
| | | .title-before-blue.green { |
| | | padding-left: 30rpx; |
| | | padding-bottom: 0rpx; |
| | | } |
| | | |
| | | .title-before-blue:before { |
| | | color: #04BA97; |
| | | font-weight: 600; |
| | | min-width: 14rpx; |
| | | background: #04BA97; |
| | | border-radius: 8rpx; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .popup_shop_detail { |
| | | background: #FFFFFF; |
| | | // padding: 30rpx 0rpx; |
| | | padding-bottom: 30rpx; |
| | | |
| | | .footer-shop { |
| | | margin: 0 auto; |
| | | margin-top: 46rpx; |
| | | } |
| | | |
| | | .common-address-select { |
| | | margin-left: 20rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .close-parent { |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .canteen-items { |
| | | .canteen-item { |
| | | margin-left: 20rpx; |
| | | margin-right: 0rpx; |
| | | |
| | | .cateen_infos { |
| | | width: 440rpx; |
| | | |
| | | } |
| | | |
| | | .cateen_infos.list { |
| | | max-width: 30 0rpx; |
| | | min-width: 200rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .canteen-items { |
| | | // margin-left: 30rpx; |
| | | |
| | | .canteen-item { |
| | | margin-left: 30rpx; |
| | | margin-right: 30rpx; |
| | | // width: 690rpx; |
| | | // max-width: 690rpx; |
| | | height: 206rpx; |
| | | background: #FFFFFF; |
| | | border-radius: 16rpx; |
| | | display: flex; |
| | | margin-bottom: 24rpx; |
| | | |
| | | .cover { |
| | | width: 202rpx; |
| | | height: 202rpx; |
| | | } |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .desc { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | | .price { |
| | | |
| | | font-size: 24rpx; |
| | | |
| | | .icon { |
| | | line-height: 60rpx; |
| | | } |
| | | |
| | | .num { |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | color: #000000; |
| | | // line-height: 50rpx; |
| | | } |
| | | } |
| | | |
| | | .cateen_infos { |
| | | width: 400rpx; |
| | | position: relative; |
| | | } |
| | | |
| | | .cateen_infos.list { |
| | | max-width: 300rpx; |
| | | min-width: 200rpx; |
| | | |
| | | } |
| | | |
| | | .bottom-buttons { |
| | | // width: 400rpx; |
| | | position: absolute; |
| | | bottom: 0rpx; |
| | | |
| | | left: 0; |
| | | right: 0; |
| | | |
| | | .icons { |
| | | margin-left: auto; |
| | | margin-right: 0; |
| | | |
| | | .curnums { |
| | | line-height: 60rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .canteen-item-container { |
| | | width: 100%; |
| | | min-height: 300rpx; |
| | | max-height: calc(100vh - 300rpx); |
| | | overflow-y: scroll; |
| | | } |
| | | |
| | | .canteen-item.list { |
| | | margin-right: 0rpx; |
| | | flex: 1; |
| | | margin-bottom: 0rpx; |
| | | |
| | | .cover { |
| | | width: 158rpx; |
| | | height: 158rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .canteen-footer-shop { |
| | | position: absolute; |
| | | position: fixed; |
| | | left: 30rpx; |
| | | bottom: 30rpx; |
| | | } |
| | | |
| | | .area-select { |
| | | .area { |
| | | |
| | | margin-right: 0rpx; |
| | | |
| | | .t { |
| | | font-weight: 400; |
| | | font-size: 32rpx; |
| | | color: #000000; |
| | | line-height: 44rpx; |
| | | } |
| | | |
| | | .i {} |
| | | } |
| | | |
| | | .area-1 { |
| | | margin-left: auto; |
| | | } |
| | | |
| | | .area-2 { |
| | | margin-left: 84rpx; |
| | | } |
| | | } |
| | | |
| | | .canteen-banner { |
| | | width: 750rpx; |
| | | min-height: 360rpx; |
| | | } |
| | | } |
| | | </style> |