Browse Source

上传

master
前端-胡立永 4 months ago
parent
commit
8c98af4041
10 changed files with 212 additions and 249 deletions
  1. +15
    -0
      common.scss
  2. +7
    -6
      components/base/navbar.vue
  3. +13
    -14
      components/base/tabbar.vue
  4. +10
    -4
      pages.json
  5. +12
    -3
      pages/index/category.vue
  6. +137
    -206
      pages/index/center.vue
  7. +5
    -4
      pages/index/index.vue
  8. +4
    -3
      pages/index/order.vue
  9. +9
    -9
      pages_order/product/productDetail.vue
  10. BIN
      static/image/center/headImage.png

+ 15
- 0
common.scss View File

@ -37,4 +37,19 @@
margin: 0;
width: 0;
height: 0;
}
.uv-tags__text{
font-size: 20rpx !important;
}
.uv-tags{
height: 40rpx !important;
line-height: 40rpx !important;
padding: 0 10rpx !important;
}
.uv-button-wrapper button{
height: 50rpx !important;
}
.uv-button__text{
font-size: 26rpx !important;
}

+ 7
- 6
components/base/navbar.vue View File

@ -2,27 +2,27 @@
<!-- <view class="navbar"
:style="{backgroundColor : bgColor}"> -->
<view class="title"
:style="{backgroundColor : bgColor}">
:style="{backgroundColor : bgColor, color}">
<view class="left">
<uv-icon name="arrow-left"
v-if="leftClick"
@click="$emit('leftClick')"
color="#333" size="46rpx"></uv-icon>
:color="color" size="46rpx"></uv-icon>
</view>
<view>{{ title }}</view>
<view class="icon">
<uv-icon name="search"
v-if="isSearch"
color="#333" size="58rpx"></uv-icon>
:color="color" size="58rpx"></uv-icon>
<uv-icon name="plus-circle" color="#333"
<uv-icon name="plus-circle" :color="color"
v-if="isPlus"
@click="plusCircleShow = true"
size="46rpx" style="margin-left: 30rpx;"></uv-icon>
<view v-if="moreClick" style="margin-left: 30rpx;">
<uv-icon name="more-dot-fill" color="#333"
<uv-icon name="more-dot-fill" :color="color"
v-if="!moreText"
@click="moreClick()"
size="46rpx"></uv-icon>
@ -64,7 +64,8 @@
},
bgColor : {
default : '#fff'
}
},
color : '#333',
},
created() {
},


+ 13
- 14
components/base/tabbar.vue View File

@ -43,21 +43,20 @@
"iconPath": "/static/image/tabbar/category.png",
"pagePath": "/pages/index/category",
"title": "分类",
isNotShop : true,
},
{
"selectedIconPath": "/static/image/tabbar/order-a.png",
"iconPath": "/static/image/tabbar/order.png",
"pagePath": "/pages/index/order",
"title": "订单中心"
},
{
"selectedIconPath": "/static/image/tabbar/cart-a.png",
"iconPath": "/static/image/tabbar/cart.png",
"pagePath": "/pages/index/cart",
"title": "购物车",
isNotShop : true,
},
// {
// "selectedIconPath": "/static/image/tabbar/order-a.png",
// "iconPath": "/static/image/tabbar/order.png",
// "pagePath": "/pages/index/order",
// "title": ""
// },
// {
// "selectedIconPath": "/static/image/tabbar/cart-a.png",
// "iconPath": "/static/image/tabbar/cart.png",
// "pagePath": "/pages/index/cart",
// "title": "",
// isNotShop : true,
// },
{
"selectedIconPath": "/static/image/tabbar/center-a.png",
"iconPath": "/static/image/tabbar/center.png",


+ 10
- 4
pages.json View File

@ -9,19 +9,22 @@
{
"path": "pages/index/order",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/index/category",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/index/center",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"navigationBarTextStyle": "white"
}
},
{
@ -40,7 +43,10 @@
"subPackages": [{
"root": "pages_order",
"pages": [{
"path": "order/orderDetail"
"path": "order/orderDetail",
"style": {
"navigationBarTextStyle": "white"
}
},
{
"path": "mine/purse"


+ 12
- 3
pages/index/category.vue View File

@ -1,12 +1,11 @@
<template>
<view class="page">
<navbar/>
<navbar bgColor="#DC2828"/>
<view class="category">
<uv-vtabs
:chain="chain"
:list="category"
height="1000px"
:barItemBadgeStyle="{right:'20px',top:'12px'}"
@change="change">
<uv-vtabs-item>
@ -115,10 +114,20 @@
</script>
<style scoped lang="scss">
.page{
/deep/ .uv-vtabs{
height: calc(100vh - 360rpx) !important;
}
/deep/ .uv-vtabs__bar{
height: calc(100vh - 360rpx) !important;
}
/deep/ .uv-vtabs__content{
height: calc(100vh - 360rpx) !important;
}
}
.category {
font-size: 30rpx;
color: #333;
min-height: 100vh;
.category-title{
position: relative;
display: flex;


+ 137
- 206
pages/index/center.vue View File

@ -1,148 +1,126 @@
<template>
<view class="page">
<navbar title="个人中心" />
<navbar bgColor="#DC2828"/>
<view class="head">
<view class="headImage">
<image src="" mode=""></image>
<image :src="headImage" mode=""></image>
</view>
<view class="info">
<view class="name">
倾心.
倾心.
<view>
<uv-icon name="edit-pen" size="40rpx" color="#fff"></uv-icon>
修改资料
</view>
</view>
<!-- <view class="vip">
VIP1
</view> -->
<view class="tips">
今天是您来的的第32天
</view>
</view>
<view class="headBtn" @click="headBtn">
角色切换
</view>
<view class="setting">
<uv-icon name="setting" size="40rpx"></uv-icon>
</view>
</view>
<!-- 水洗店 -->
<view class="userShop" v-if="userShop">
<userShopCommission />
<view class="userList">
<view class="title">
我的用户
</view>
<view class="list">
<view class="item" v-for="(item, index) in 20" :key="index">
<view class="name">
客户王生
</view>
<view class="num">
剩余水洗布198
</view>
</view>
手机号1300000000
</view>
</view>
</view>
<!-- 酒店 -->
<view class="user" v-else>
<view class="line">
<view class="item">
<view class="image">
<image src="/static/image/center/1.png" mode=""></image>
</view>
<view class="">
余额3000
</view>
</view>
<view class="item">
<view class="image">
<image src="/static/image/center/4.png" mode=""></image>
</view>
<view class="">
押金30000
</view>
</view>
<view class="user">
<view class="swipe">
<uv-swiper
:list="bannerList"
indicator
height="220rpx"
keyName="url"></uv-swiper>
</view>
<view class="line grid">
<view class="title">
常用功能
我的服务
</view>
<uv-grid :col="4" :border="false">
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/address')">
<image class="image" src="/static/image/center/7.png" mode=""></image>
<text class="grid-text">地址管理</text>
<uv-grid-item @click="$utils.navigateTo('/index/order')">
<image class="image" src="/static/image/center/1.png" mode=""></image>
<text class="grid-text">我的订单</text>
</uv-grid-item>
<uv-grid-item @click="$utils.redirectTo('/index/order')">
<image class="image" src="/static/image/center/8.png" mode=""></image>
<text class="grid-text">订单管理</text>
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/GainPoints')">
<image class="image" src="/static/image/center/4.png" mode=""></image>
<text class="grid-text">我的团队</text>
</uv-grid-item>
<uv-grid-item @click="$utils.navigateTo('/pages_order/order/refundsOrExchange?index='+0)">
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/IntegralRecord')">
<image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">换货</text>
<text class="grid-text">联系客服</text>
</uv-grid-item>
<uv-grid-item @click="$utils.navigateTo('/pages_order/order/refundsOrExchange?index='+1)">
<image class="image" src="/static/image/center/7.png" mode=""></image>
<text class="grid-text">退货</text>
<image class="image" src="/static/image/center/6.png" mode=""></image>
<text class="grid-text">快捷订单</text>
</uv-grid-item>
</uv-grid>
</view>
<view class="line grid">
<uv-grid :col="4" :border="false">
<uv-grid-item @click="contactUs">
<image class="image" src="/static/image/center/9.png" mode=""></image>
<text class="grid-text">联系客服</text>
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/address')">
<image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">邀请好友</text>
</uv-grid-item>
<uv-grid-item>
<uv-grid-item @click="$utils.redirectTo('/index/consult')">
<image class="image" src="/static/image/center/6.png" mode=""></image>
<text class="grid-text">我的租赁</text>
<text class="grid-text">系统设置</text>
</uv-grid-item>
<uv-grid-item @click="$utils.redirectTo('/index/cart')">
<image class="image" src="/static/image/center/7.png" mode=""></image>
<text class="grid-text">租赁车</text>
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/contract')">
<image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">帮助与反馈</text>
</uv-grid-item>
<uv-grid-item
@click="$utils.navigateTo('/pages_order/auth/loginAndRegisterAndForgetPassword?index='+2)">
<image class="image" src="/static/image/center/7.png" mode=""></image>
<text class="grid-text">申请成为水洗店</text>
<uv-grid-item @click="$utils.navigateTo('/pages_order/mine/promotion?index='+1)">
<image class="image" src="/static/image/center/5.png" mode=""></image>
<text class="grid-text">关于本程序</text>
</uv-grid-item>
</uv-grid>
</view>
</view>
<tabber select="4" />
<tabber select="2" />
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import {
mapGetters
mapState
} from 'vuex'
import userShopCommission from '@/components/userShop/userShopCommission.vue'
export default {
components: {
tabber,
userShopCommission,
},
computed: {
...mapGetters(['userShop']),
...mapState(['userInfo']),
headImage(){
return '/static/image/center/headImage.png'
},
username(){
},
},
data() {
return {
show: false,
bannerList: [
{
url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
},
{
url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
},
{
url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
},
],
}
},
methods: {
headBtn() {
let self = this
uni.showModal({
@ -154,55 +132,27 @@
}
})
},
}
}
</script>
<style scoped lang="scss">
.page {
.warp {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
//
contactUs() {
this.show = true
},
confirm() {
this.show = false
},
.rect {
width: 600rpx;
height: 300rpx;
background-color: #fff;
border-radius: 20rpx;
overflow: hidden;
cancle() {
this.show = false
},
.title {
padding: 10rpx 0 0 15rpx;
background-color: #fd5100;
color: #FFF;
text-align: left;
width: 100%;
height: 18%;
font-size: 36rpx;
}
.center {
height: 40%;
display: flex;
justify-content: center;
align-items: center;
font-size: 36rpx;
}
.bottom {
display: flex;
justify-content: center;
gap: 50rpx;
}
}
}
</script>
<style scoped lang="scss">
.page {
}
image {
width: 100%;
@ -211,15 +161,16 @@
.head {
display: flex;
background-color: #fff;
background-color: $uni-color;
padding: 40rpx 20rpx;
align-items: center;
position: relative;
color: #fff;
padding-bottom: 70rpx;
.headImage {
width: 120rpx;
height: 120rpx;
background-image: url(/static/image/center/3.png);
// background-image: url(/static/image/center/3.png);
background-size: 100% 100%;
overflow: hidden;
border-radius: 50%;
@ -228,101 +179,82 @@
.info {
font-size: 28rpx;
.vip {
background-color: #FCCC92;
color: #FA6239;
width: 100rpx;
display: flex;
justify-content: center;
align-items: center;
height: 40rpx;
border-radius: 20rpx;
margin-top: 20rpx;
}
.name {
font-size: 32rpx;
display: flex;
padding-bottom: 10rpx;
view{
display: flex;
font-size: 20rpx;
align-items: center;
padding-left: 20rpx;
}
}
.tips {
font-size: 26rpx;
color: #ABABAB;
color: #fff;
}
}
.headBtn {
margin-left: auto;
padding: 15rpx 20rpx;
background-color: $uni-color;
color: #fff;
border-radius: 20rpx;
margin-top: 50rpx;
}
.setting {
position: absolute;
right: 50rpx;
top: 50rpx;
}
// .headBtn {
// margin-left: auto;
// padding: 15rpx 20rpx;
// background-color: $uni-color;
// color: #fff;
// border-radius: 20rpx;
// margin-top: 50rpx;
// }
// .setting {
// position: absolute;
// right: 50rpx;
// top: 50rpx;
// }
}
.userShop {
.userList {
.title {
font-size: 32rpx;
font-weight: 900;
padding: 20rpx;
}
.list {
display: flex;
flex-wrap: wrap;
.item {
width: 270rpx;
margin: 20rpx;
display: flex;
flex-direction: column;
padding: 40rpx 30rpx;
background-color: #fff;
border-radius: 30rpx;
line-height: 60rpx;
.name {}
.num {
color: $uni-color;
font-weight: 600;
font-size: 28rpx;
}
}
.user {
position: relative;
padding-top: 30rpx;
.auth{
width: 690rpx;
position: absolute;
top: -50rpx;
left: 30rpx;
z-index: 99;
overflow: hidden;
background-color: #fff;
border-radius: 20rpx;
/deep/ text{
font-size: 26rpx;
}
}
}
.user {
.swipe{
margin: 30rpx;
border-radius: 20rpx;
overflow: hidden;
}
.line {
display: flex;
background-color: #fff;
margin-top: 20rpx;
padding: 20rpx 0;
margin: 30rpx;
border-radius: 20rpx;
overflow: hidden;
.item {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20rpx 0;
&:nth-child(1) {
border-right: 1px solid #00000013;
}
.image {
width: 100rpx;
height: 70rpx;
margin-right: 20rpx;
font-size: 24rpx;
padding: 10rpx 0;
view{
padding: 5rpx 0;
}
}
}
@ -335,18 +267,17 @@
.title {
margin-bottom: 30rpx;
font-size: 28rpx;
font-weight: 600;
}
.image {
width: 70rpx;
height: 70rpx;
width: 45rpx;
height: 45rpx;
margin-bottom: 10rpx;
}
text {
text-align: center;
width: 120rpx;
margin-bottom: 20rpx;
}
}
}

+ 5
- 4
pages/index/index.vue View File

@ -38,7 +38,7 @@
<view class="line grid">
<uv-grid :col="4" :border="false">
<uv-grid-item @click="contactUs">
<uv-grid-item>
<image class="image" src="../../static/image/home/3.png" mode=""></image>
<text class="grid-text">XX建材</text>
</uv-grid-item>
@ -48,13 +48,12 @@
<text class="grid-text">XX建材</text>
</uv-grid-item>
<uv-grid-item @click="$utils.redirectTo('/index/cart')">
<uv-grid-item >
<image class="image" src="../../static/image/home/5.png" mode=""></image>
<text class="grid-text">XX建材</text>
</uv-grid-item>
<uv-grid-item
@click="$utils.navigateTo('/pages_order/auth/loginAndRegisterAndForgetPassword?index='+2)">
<uv-grid-item>
<image class="image" src="../../static/image/home/6.png" mode=""></image>
<text class="grid-text">XX建材</text>
</uv-grid-item>
@ -79,8 +78,10 @@
<image src="../../static/image/home/7.png" mode=""></image>
</view>
</view>
<view class="shop-list"
v-for="(item, index) in 20"
@click="$utils.navigateTo('/pages_order/product/productDetail')"
:key="index">
<view class="picture-shop">
<image src="../../static/image/home/8.png" mode=""></image>


+ 4
- 3
pages/index/order.vue View File

@ -3,6 +3,10 @@
<navbar
title="订单中心"
bgColor="#DC2828"
color="#fff"
leftClick
@leftClick="$utils.navigateBack"
/>
<uv-tabs :list="tabs"
@ -76,16 +80,13 @@
</view>
</view>
<tabber select="2"/>
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import { mapGetters } from 'vuex'
export default {
components : {
tabber,
},
computed : {
...mapGetters(['userShop']),


+ 9
- 9
pages_order/product/productDetail.vue View File

@ -17,12 +17,12 @@
<view class="price">
<text>45.9</text>
</view>
<view class="num">
<!-- <view class="num">
已售1000+
<image src="../static/product/like.png" mode=""></image>
</view>
</view> -->
</view>
<view class="tips">
<!-- <view class="tips">
<view class="tip">
专业设备
</view>
@ -32,25 +32,25 @@
<view class="tip">
质量保证
</view>
</view>
</view> -->
</view>
<view class="info-unit">
<uv-cell title="是否有桌布" isLink>
<uv-cell title="免费上门退·7天无理由退货·快递发货" isLink>
<template #icon>
<text class="text">桌布</text>
<text class="text">服务</text>
</template>
</uv-cell>
<uv-cell title="请选择规格" isLink>
<template #icon>
<text class="text">规格</text>
<text class="text">参数</text>
</template>
</uv-cell>
<uv-cell>
<template #icon>
<text>上门取件·送货上门</text>
<text>品牌适应人群</text>
</template>
</uv-cell>
</view>
@ -64,7 +64,7 @@
<!-- 分享和租赁按钮 -->
<submit
@submit="$refs.submitUnitSelect.open()"
@submit="$utils.navigateTo('/pages_order/order/firmOrder?id=')"
@share="share"/>
<!-- 选择规格 -->


BIN
static/image/center/headImage.png View File

Before After
Width: 116  |  Height: 116  |  Size: 16 KiB

Loading…
Cancel
Save