From 98f4b7ec4164ec1c6798c8c4188b93f4ce48ec46 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期三, 10 七月 2024 23:39:57 +0800
Subject: [PATCH] update收获地址
---
pages/home/components/home-banner-imgs.vue | 42 +
pages/home/home.vue | 276 +----
common/self.scss | 12
sub_pages/customer/shopping/shopping.vue | 3
pages.json | 9
pages/user/user-customer.scss | 41
pages/home/components/home-top-flow.vue | 149 +++
pages/home/components/home-zones.vue | 191 ++++
components/footer/main.scss | 60 +
pages/home/home.scss | 109 +-
pages/user/address/address.vue | 398 +++++++++
/dev/null | 144 ---
pages/home/components/home-price.vue | 147 +++
components/footer/customer-footer.vue | 28
pages/user/user.scss | 28
sub_pages/customer/trade/trade.vue | 603 ++++++++++++++
pages/home/components/home-category.vue | 69 +
pages/user/supplier-user.vue | 111 +
18 files changed, 1,925 insertions(+), 495 deletions(-)
diff --git a/common/self.scss b/common/self.scss
index dece188..9f3c54a 100644
--- a/common/self.scss
+++ b/common/self.scss
@@ -177,7 +177,13 @@
.m-l-40 {
margin-left: 80rpx;
}
-
+.m-l-5{
+ margin-left: 10rpx;
+}
+.m-l-12{
+ margin-left: 24rpx;
+
+}
.m-r-a {
margin-right: auto;
}
@@ -195,7 +201,9 @@
margin-right: 4rpx;
}
-
+.m-r-5{
+ margin-right: 10rpx;
+}
.m-r-10 {
margin-right: 20rpx;
diff --git a/components/footer/customer-footer.vue b/components/footer/customer-footer.vue
index 7298a72..c953cce 100644
--- a/components/footer/customer-footer.vue
+++ b/components/footer/customer-footer.vue
@@ -1,25 +1,25 @@
<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>
@@ -38,18 +38,22 @@
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'
}
]
}
diff --git a/components/footer/main.scss b/components/footer/main.scss
index 86527b8..03a0964 100644
--- a/components/footer/main.scss
+++ b/components/footer/main.scss
@@ -109,4 +109,62 @@
border-radius: 50rpx;
color: var(--topicolor);
}
-}
\ No newline at end of file
+}
+
+.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
+ }
+ }
+ }
+
+}
+
\ No newline at end of file
diff --git a/pages.json b/pages.json
index cd0f85d..780dd3b 100644
--- a/pages.json
+++ b/pages.json
@@ -4,6 +4,7 @@
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
"pages": [
+
// #ifdef PUB_CUSTOMER
{
"path": "pages/home/home",
@@ -66,6 +67,14 @@
"navigationBarTitleText": "修改密码",
"enablePullDownRefresh": false
}
+ },
+ {
+ "path" : "pages/user/address/address",
+ "style" :
+ {
+ "navigationBarTitleText" : "收货地址",
+ "enablePullDownRefresh" : false
+ }
}
],
diff --git a/pages/home/components/home-banner-imgs.vue b/pages/home/components/home-banner-imgs.vue
new file mode 100644
index 0000000..ef00757
--- /dev/null
+++ b/pages/home/components/home-banner-imgs.vue
@@ -0,0 +1,42 @@
+<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>
diff --git a/pages/home/components/home-category.vue b/pages/home/components/home-category.vue
new file mode 100644
index 0000000..1768fea
--- /dev/null
+++ b/pages/home/components/home-category.vue
@@ -0,0 +1,69 @@
+<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>
\ No newline at end of file
diff --git a/pages/home/components/home-price.vue b/pages/home/components/home-price.vue
new file mode 100644
index 0000000..4065062
--- /dev/null
+++ b/pages/home/components/home-price.vue
@@ -0,0 +1,147 @@
+<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>
\ No newline at end of file
diff --git a/pages/home/components/home-top-flow.vue b/pages/home/components/home-top-flow.vue
new file mode 100644
index 0000000..1b5e2ba
--- /dev/null
+++ b/pages/home/components/home-top-flow.vue
@@ -0,0 +1,149 @@
+<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>
\ No newline at end of file
diff --git a/pages/home/components/home-zones.vue b/pages/home/components/home-zones.vue
new file mode 100644
index 0000000..c9b656f
--- /dev/null
+++ b/pages/home/components/home-zones.vue
@@ -0,0 +1,191 @@
+<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>
\ No newline at end of file
diff --git a/pages/home/home.scss b/pages/home/home.scss
index bd9753a..0ebf45b 100644
--- a/pages/home/home.scss
+++ b/pages/home/home.scss
@@ -14,78 +14,69 @@
.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;
diff --git a/pages/home/home.vue b/pages/home/home.vue
index e89364d..805733e 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -1,23 +1,25 @@
<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"
@@ -31,84 +33,35 @@
</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>
@@ -116,40 +69,32 @@
</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',
@@ -193,7 +138,6 @@
tripList: [],
tuangouList: [],
hide_footer: false,
- words: [], //弹幕
noticeList: [],
currentNoticeIndex: 0,
currentNotice: {
@@ -201,16 +145,16 @@
}
};
},
- 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 {
@@ -224,13 +168,13 @@
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', {
@@ -239,34 +183,16 @@
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: {
@@ -311,89 +237,33 @@
},
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));
+
},
}
diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue
new file mode 100644
index 0000000..75053a7
--- /dev/null
+++ b/pages/user/address/address.vue
@@ -0,0 +1,398 @@
+<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>
\ No newline at end of file
diff --git a/pages/user/bussincess-user.vue b/pages/user/bussincess-user.vue
deleted file mode 100644
index e0d8e38..0000000
--- a/pages/user/bussincess-user.vue
+++ /dev/null
@@ -1,144 +0,0 @@
-<template>
- <view class="main-container user-container">
- <!-- <view>
- 我的
- </view> -->
- <!-- 背景图 -->
- <view class="top-bg" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
- <view class="title" style="position: relative;" @click="changedefaulttype">
- 我<uni-icons type="settings"></uni-icons>
- <!-- <view style="position: absolute;left: 32rpx;top: 0;">
- <uni-icons type="settings" @click="changedefaulttype"></uni-icons>
- </view> -->
- </view>
- <view class="icons">
- <image class="icon1" src="../../static/imgs/user/usr-icon1.png" mode="aspectFit"></image>
- <image class="icon2" src="../../static/imgs/home/home-shop-top-icon.png" mode="aspectFit"></image>
- </view>
- <view class="flex m-20 user-info" @click="goto('/pages/user/user-info/user-info',true)"
- v-if="currentInfo&&(currentInfo.id)">
- <!-- 头像 -->
- <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">
- {{currentInfo.nickName || '-'}}
- </view>
- <uni-icons class="right-icon" type="right"></uni-icons>
- </view>
- <view class="flex m-20 user-info" v-else @click="toLogin">
- <!-- <button open-type="getUserInfo" style="background-color: #fff" @tap="getUserProfile"
- class="title-bold h2">{{'请点击授权登录~'}}</button> -->
- 前往登录
- </view>
-
-
- </view>
-
-
-
- <view style="padding-bottom:200rpx">
- </view>
- <bussincess-footer flg="1"></bussincess-footer>
-
- </view>
-</template>
-
-<script>
- import storage from '@/plugins/storage.js'
-
- export default {
- data() {
- return {
- CustomBar: uni.getStorageSync('CustomBar'),
- StatusBar: uni.getStorageSync('StatusBar'),
- // StatusBar:0
- };
- },
- created() {
- console.log('created bu')
-
- },
- mounted() {
- console.log('mounted bu')
-
- },
- methods: {
- toLogin() {
- uni.navigateTo({
- url: '/pages/home/rider-login/rider-login'
- })
- },
- async changedefaulttype() {
- await this.$message.confirm('前往学生端吗?')
- //清空数据
- const res = await this.$store.dispatch('logout');
-
- uni.reLaunch({
- url: '/pages/user/user'
- })
- },
- async getUserProfile(e) {
- const res = await wx.getUserProfile({
- desc: '用于完善会员资料',
- });
- console.log(res);
- this.login_Wx(res.userInfo.avatarUrl, res.userInfo.nickName)
- },
- login_Wx(imgurl, nickname) {
- //获取openId
- // /wx/jscode2session
- const tmp = this;
- this.$message.showLoading()
- this.openid = this.$storage.getItem('openid');
- this.tel = this.$storage.getItem('tel');
- console.log('info,info,info,info,info,info', this.openid, this.tel);
- if (!!this.openid && !!this.tel) {
- // this.login = true;
- } else {
- // this.login = false;
- console.log('wx.login');
- wx.login({
- success: async res => {
- if (res.code) {
- //微信登录成功 已拿到code
- // tmp.login = true;
- // tmp.jsCode = res.code; //保存获取到的code
- console.log('abcd', res.code);
- // this.$http.request('post',`/api/login/wechat`,{data:{code:tmp.jsCode}})
- this.$storage.setItem('jsCode', res.code);
- const res2 = await wx.getUserInfo();
- console.log('res', res2);
-
- await this.$store.dispatch('loginwx', {
- code: res.code,
- imgurl: imgurl,
- nickname: nickname
- });
- tmp.$message.hideLoading()
-
- this.$forceUpdate()
- } else {
- tmp.$message.hideLoading()
- tmp.$message.showToast('微信登录失败');
-
- }
- },
- error: res => {
- console.log('wx.login error', res);
- tmp.$message.hideLoading()
-
- tmp.$message.showToast('微信授权失败');
- }
- });
- }
- },
-
- }
- }
-</script>
-
-<style lang="scss" scoped>
- @import "./user.scss";
-</style>
\ No newline at end of file
diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue
index ec5c144..f9775a3 100644
--- a/pages/user/supplier-user.vue
+++ b/pages/user/supplier-user.vue
@@ -10,33 +10,59 @@
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">
@@ -62,7 +88,7 @@
</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>
@@ -77,27 +103,31 @@
<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>
@@ -122,7 +152,8 @@
<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>
@@ -142,22 +173,22 @@
</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>
diff --git a/pages/user/user-customer.scss b/pages/user/user-customer.scss
index 4a7ba2a..37f2d03 100644
--- a/pages/user/user-customer.scss
+++ b/pages/user/user-customer.scss
@@ -1,4 +1,5 @@
.user-customer-order-infos{
+ padding-top: 0rpx;
.more{
font-weight: 400;
font-size: 24rpx;
@@ -24,12 +25,12 @@
.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{
@@ -53,11 +54,14 @@
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;
}
@@ -66,3 +70,32 @@
}
}
+.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;
+ }
+}
diff --git a/pages/user/user.scss b/pages/user/user.scss
index 691eefc..796cbff 100644
--- a/pages/user/user.scss
+++ b/pages/user/user.scss
@@ -78,7 +78,7 @@
.icon-setting{
position: absolute;
right: 0rpx;
- top: -30rpx;
+ top: 50rpx;
height: 54rpx;
width: 54rpx;
}
@@ -130,28 +130,6 @@
// 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;
}
}
}
@@ -220,4 +198,6 @@
}
}
-}
\ No newline at end of file
+}
+
+
\ No newline at end of file
diff --git a/sub_pages/customer/shopping/shopping.vue b/sub_pages/customer/shopping/shopping.vue
index 8183fd0..63c4619 100644
--- a/sub_pages/customer/shopping/shopping.vue
+++ b/sub_pages/customer/shopping/shopping.vue
@@ -1,6 +1,9 @@
<template>
<view>
+ <view style="min-height:200rpx">
+ </view>
+ <common-footer flg="2"></common-footer>
</view>
</template>
diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue
index 8183fd0..523f096 100644
--- a/sub_pages/customer/trade/trade.vue
+++ b/sub_pages/customer/trade/trade.vue
@@ -1,22 +1,613 @@
<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>
\ No newline at end of file
--
Gitblit v1.9.3