parent
80017c09ad
commit
3954f6b756
@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
||||
@ -0,0 +1,238 @@
|
||||
.container {
|
||||
background-color: #f7f7f7;
|
||||
padding-bottom: 60rpx;
|
||||
}.price {
|
||||
font-size: 30rpx;
|
||||
color: #ff3000;
|
||||
font-weight: 600;
|
||||
|
||||
&::before {
|
||||
content: '¥';
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.origin-price {
|
||||
font-size: 26rpx;
|
||||
font-weight: 400;
|
||||
text-decoration: line-through;
|
||||
color: #c4c4c4;
|
||||
}
|
||||
.userinfo {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
text-align: center;
|
||||
padding: 30rpx 0;
|
||||
.userinfo-con {
|
||||
width: 240rpx;
|
||||
margin: auto;
|
||||
.userinfo-avatar {
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
border-radius: 50%;
|
||||
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
|
||||
margin: auto;
|
||||
image {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
}
|
||||
}
|
||||
.userinfo-name {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
margin-top: 20rpx;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
text-overflow: ellipsis;
|
||||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
}
|
||||
.userinfo-none {
|
||||
display: flex;
|
||||
padding: 30rpx;
|
||||
background: #fff;
|
||||
align-items: center;
|
||||
.default-pic {
|
||||
padding-right: 30rpx;
|
||||
image {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.none-login {
|
||||
button {
|
||||
background: #fff;
|
||||
&::after {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.unlogin {
|
||||
font-size: 30rpx;
|
||||
text-align: left;
|
||||
padding: 0;
|
||||
}
|
||||
.click-login {
|
||||
font-size: 26rpx;
|
||||
color: #777;
|
||||
text-align: left;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.binding-phone {
|
||||
position: relative;
|
||||
background: #fff;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
padding: 0 30rpx;
|
||||
border-top: 2rpx solid #f7f7f7;
|
||||
border-bottom: 2rpx solid #f7f7f7;
|
||||
.show-tip {
|
||||
font-size: 26rpx;
|
||||
}
|
||||
.gotobinding {
|
||||
border-radius: 8rpx;
|
||||
font-size: 28rpx;
|
||||
color: #e24b4b;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.list-cont {
|
||||
width: 100%;
|
||||
background: #f7f7f7;
|
||||
margin-top: 20rpx;
|
||||
.total-order {
|
||||
background: #fff;
|
||||
.order-tit {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
font-size: 30rpx;
|
||||
border-bottom: 1px solid #f7f7f7;
|
||||
padding: 0 30rpx;
|
||||
.checkmore {
|
||||
font-size: 22rpx;
|
||||
color: #80848f;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.procedure {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
font-size: 25rpx;
|
||||
height: 160rpx;
|
||||
.items {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
image {
|
||||
width: 70rpx;
|
||||
height: 70rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.num-badge {
|
||||
position: absolute;
|
||||
top: -15rpx;
|
||||
right: -12rpx;
|
||||
color: #eb2444;
|
||||
border: 3rpx solid #eb2444;
|
||||
border-radius: 50rpx;
|
||||
background: #fff;
|
||||
min-width: 30rpx;
|
||||
height: 30rpx;
|
||||
line-height: 30rpx;
|
||||
text-align: center;
|
||||
padding: 2rpx;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.my-menu {
|
||||
background-color: #fff;
|
||||
margin-top: 20rpx;
|
||||
.memu-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
height: 100rpx;
|
||||
border-bottom: 2rpx solid #f7f7f7;
|
||||
padding: 0 30rpx;
|
||||
&:nth-child(1) {
|
||||
border-top: 2rpx solid #f7f7f7;
|
||||
}
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
text {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
image {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.i-name {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.arrowhead {
|
||||
width: 15rpx;
|
||||
height: 15rpx;
|
||||
border-top: 2rpx solid #999;
|
||||
border-right: 2rpx solid #999;
|
||||
transform: rotate(45deg);
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.prod-col {
|
||||
margin-top: 20rpx;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
padding: 30rpx 0 10rpx 0;
|
||||
font-size: 12px;
|
||||
.col-item {
|
||||
text-align: center;
|
||||
.num {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
color: #3a86b9;
|
||||
}
|
||||
.tit {
|
||||
line-height: 34px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.log-out {
|
||||
padding: 20rpx;
|
||||
text-align: center;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.log-out-n {
|
||||
font-size: 30rpx;
|
||||
margin: auto;
|
||||
width: 200rpx;
|
||||
padding: 20rpx;
|
||||
border-radius: 10rpx;
|
||||
background: #e43130;
|
||||
color: #ffffff;
|
||||
}
|
||||
button.memu-btn.memu-item {
|
||||
background-color: #fff;
|
||||
&:after {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
3123123
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@use './member-info.scss';
|
||||
</style>
|
||||
@ -0,0 +1,125 @@
|
||||
.container {
|
||||
background: #f4f4f4;
|
||||
}.price {
|
||||
font-size: 30rpx;
|
||||
color: #ff3000;
|
||||
font-weight: 600;
|
||||
|
||||
/* &::before {
|
||||
content: '¥';
|
||||
font-size: 24rpx;
|
||||
} */
|
||||
}
|
||||
|
||||
.origin-price {
|
||||
font-size: 26rpx;
|
||||
font-weight: 400;
|
||||
text-decoration: line-through;
|
||||
color: #c4c4c4;
|
||||
}
|
||||
.category-tit {
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
z-index: 999;
|
||||
background-color: #fff;
|
||||
border-bottom: 2rpx solid #f4f4f4;
|
||||
font-size: 30rpx;
|
||||
.category-item {
|
||||
display: inline-block;
|
||||
padding: 20rpx 10rpx;
|
||||
margin: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.prod-item {
|
||||
height: calc(100vh - 100rpx);
|
||||
}
|
||||
.on {
|
||||
border-bottom: 4rpx solid #e43130;
|
||||
color: #e43130;
|
||||
}
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
color: transparent;
|
||||
}
|
||||
.empty {
|
||||
margin-top: 200rpx;
|
||||
}
|
||||
.prod-items {
|
||||
width: 345rpx;
|
||||
display: inline-block;
|
||||
background: #fff;
|
||||
padding-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0rpx 6rpx 8rpx rgba(58,134,185,0.2);
|
||||
&:nth-child(2n-1) {
|
||||
margin: 20rpx 10rpx 10rpx 20rpx;
|
||||
}
|
||||
&:nth-child(2n) {
|
||||
margin: 20rpx 20rpx 10rpx 10rpx;
|
||||
}
|
||||
.hot-imagecont {
|
||||
.hotsaleimg {
|
||||
width: 341rpx;
|
||||
height: 341rpx;
|
||||
}
|
||||
font-size: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.hot-text {
|
||||
.hotprod-text {
|
||||
font-size: 28rpx;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
margin-top: 20rpx;
|
||||
padding: 0 10rpx;
|
||||
.prod-info {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.prod-text-info {
|
||||
position: relative;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
font-family: Arial;
|
||||
.hotprod-price {
|
||||
display: inline;
|
||||
font-size: 26rpx;
|
||||
color: #eb2444;
|
||||
}
|
||||
.basket-img {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 7rpx;
|
||||
padding: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.more-prod {
|
||||
.prod-text-right {
|
||||
.prod-info {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
.empty-wrap {
|
||||
color: #aaa;
|
||||
text-align: center;
|
||||
padding-top: 400rpx;
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<!-- 商品列表 -->
|
||||
<view class="prod-item">
|
||||
<block v-if="prodList.length">
|
||||
<block v-for="(prod, key) in prodList" :key="key">
|
||||
<view class="prod-items" :data-prodid="prod.prodId" @tap="toProdPage">
|
||||
<view class="hot-imagecont">
|
||||
<image :src="prod.pic" class="hotsaleimg" />
|
||||
</view>
|
||||
<view class="hot-text">
|
||||
<view class="hotprod-text">
|
||||
{{ prod.prodName }}
|
||||
</view>
|
||||
<view class="prod-info">
|
||||
{{ prod.brief }}
|
||||
</view>
|
||||
<view class="prod-text-info">
|
||||
<view class="price">
|
||||
<text class="symbol">
|
||||
¥
|
||||
</text>
|
||||
<text class="big-num">
|
||||
{{ wxs.parsePrice(prod.price)[0] }}
|
||||
</text>
|
||||
<text class="small-num">
|
||||
.{{ wxs.parsePrice(prod.price)[1] }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
<view v-else class="empty-wrap">
|
||||
暂无商品数据~
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const wxs = number()
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad((options) => {
|
||||
getProdList()
|
||||
})
|
||||
|
||||
const current = ref(1)
|
||||
const pages = ref(0)
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom(() => {
|
||||
if (current.value < pages.value) {
|
||||
current.value = current.value + 1
|
||||
getProdList()
|
||||
}
|
||||
})
|
||||
|
||||
const intoView = ref('')
|
||||
const subCategoryList = ref([])
|
||||
|
||||
const prodList = ref([])
|
||||
const isLoaded = ref(false) // 列表是否加载完毕
|
||||
/**
|
||||
* 根据分类id获取商品列表数据
|
||||
*/
|
||||
const getProdList = () => {
|
||||
isLoaded.value = false
|
||||
|
||||
http.request({
|
||||
url: '/prod/prodListByMember',
|
||||
method: 'GET',
|
||||
data: {
|
||||
current: current.value,
|
||||
size: 10,
|
||||
sort: 0,
|
||||
isAllProdType: true
|
||||
}
|
||||
})
|
||||
.then(({
|
||||
data
|
||||
}) => {
|
||||
isLoaded.value = true
|
||||
prodList.value = data.current == 1 ? data.records : prodList.value.concat(data.records)
|
||||
current.value = data.current
|
||||
pages.value = data.pages
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跳转商品下详情
|
||||
*/
|
||||
const toProdPage = (e) => {
|
||||
const prodid = e.currentTarget.dataset.prodid
|
||||
if (prodid) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/prod/prod?prodid=' + prodid
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@use './member.scss';
|
||||
</style>
|
||||
@ -0,0 +1,126 @@
|
||||
.container {
|
||||
background: #f4f4f4;
|
||||
}
|
||||
.price {
|
||||
font-size: 30rpx;
|
||||
color: #ff3000;
|
||||
font-weight: 600;
|
||||
|
||||
/* &::before {
|
||||
content: '¥';
|
||||
font-size: 24rpx;
|
||||
} */
|
||||
}
|
||||
|
||||
.origin-price {
|
||||
font-size: 26rpx;
|
||||
font-weight: 400;
|
||||
text-decoration: line-through;
|
||||
color: #c4c4c4;
|
||||
}
|
||||
.category-tit {
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
z-index: 999;
|
||||
background-color: #fff;
|
||||
border-bottom: 2rpx solid #f4f4f4;
|
||||
font-size: 30rpx;
|
||||
.category-item {
|
||||
display: inline-block;
|
||||
padding: 20rpx 10rpx;
|
||||
margin: 0 20rpx;
|
||||
box-sizing: border-box;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.prod-item {
|
||||
height: calc(100vh - 100rpx);
|
||||
}
|
||||
.on {
|
||||
border-bottom: 4rpx solid #e43130;
|
||||
color: #e43130;
|
||||
}
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
color: transparent;
|
||||
}
|
||||
.empty {
|
||||
margin-top: 200rpx;
|
||||
}
|
||||
.prod-items {
|
||||
width: 345rpx;
|
||||
display: inline-block;
|
||||
background: #fff;
|
||||
padding-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 0rpx 6rpx 8rpx rgba(58,134,185,0.2);
|
||||
&:nth-child(2n-1) {
|
||||
margin: 20rpx 10rpx 10rpx 20rpx;
|
||||
}
|
||||
&:nth-child(2n) {
|
||||
margin: 20rpx 20rpx 10rpx 10rpx;
|
||||
}
|
||||
.hot-imagecont {
|
||||
.hotsaleimg {
|
||||
width: 341rpx;
|
||||
height: 341rpx;
|
||||
}
|
||||
font-size: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.hot-text {
|
||||
.hotprod-text {
|
||||
font-size: 28rpx;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
margin-top: 20rpx;
|
||||
padding: 0 10rpx;
|
||||
.prod-info {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.prod-text-info {
|
||||
position: relative;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
font-family: Arial;
|
||||
.hotprod-price {
|
||||
display: inline;
|
||||
font-size: 26rpx;
|
||||
color: #eb2444;
|
||||
}
|
||||
.basket-img {
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 7rpx;
|
||||
padding: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.more-prod {
|
||||
.prod-text-right {
|
||||
.prod-info {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
.empty-wrap {
|
||||
color: #aaa;
|
||||
text-align: center;
|
||||
padding-top: 400rpx;
|
||||
}
|
||||
@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<!-- 商品列表 -->
|
||||
<view class="prod-item">
|
||||
<block v-if="prodList.length">
|
||||
<block v-for="(prod, key) in prodList" :key="key">
|
||||
<view class="prod-items" :data-prodid="prod.prodId" @tap="toProdPage">
|
||||
<view class="hot-imagecont">
|
||||
<image :src="prod.pic" class="hotsaleimg" />
|
||||
</view>
|
||||
<view class="hot-text">
|
||||
<view class="hotprod-text">
|
||||
{{ prod.prodName }}
|
||||
</view>
|
||||
<view class="prod-info">
|
||||
{{ prod.brief }}
|
||||
</view>
|
||||
<view class="prod-text-info">
|
||||
<view class="price">
|
||||
|
||||
<text class="big-num">
|
||||
{{ prod.payScore }}
|
||||
</text>
|
||||
|
||||
<text class="symbol">
|
||||
积分
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</block>
|
||||
<view v-else class="empty-wrap">
|
||||
暂无商品数据~
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
const wxs = number()
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad((options) => {
|
||||
|
||||
getProdList()
|
||||
})
|
||||
|
||||
const current = ref(1)
|
||||
const pages = ref(0)
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom(() => {
|
||||
if (current.value < pages.value) {
|
||||
current.value = current.value + 1
|
||||
getProdList()
|
||||
}
|
||||
})
|
||||
|
||||
const intoView = ref('')
|
||||
const subCategoryList = ref([])
|
||||
|
||||
const prodList = ref([])
|
||||
const isLoaded = ref(false) // 列表是否加载完毕
|
||||
/**
|
||||
* 根据分类id获取商品列表数据
|
||||
*/
|
||||
const getProdList = () => {
|
||||
isLoaded.value = false
|
||||
|
||||
http.request({
|
||||
url: '/prod/prodListByScore',
|
||||
method: 'GET',
|
||||
data: {
|
||||
current: current.value,
|
||||
size: 10,
|
||||
sort: 0,
|
||||
isAllProdType: true
|
||||
}
|
||||
})
|
||||
.then(({
|
||||
data
|
||||
}) => {
|
||||
isLoaded.value = true
|
||||
prodList.value = data.current == 1 ? data.records : prodList.value.concat(data.records)
|
||||
current.value = data.current
|
||||
pages.value = data.pages
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跳转商品下详情
|
||||
*/
|
||||
const toProdPage = (e) => {
|
||||
const prodid = e.currentTarget.dataset.prodid
|
||||
if (prodid) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/prod/prod?prodid=' + prodid
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@use './score.scss';
|
||||
</style>
|
||||
Loading…
Reference in new issue