This commit is contained in:
liuyuan
2025-06-12 14:26:50 +08:00
parent 9a2c26ace8
commit e415f34fa8
15 changed files with 735 additions and 3668 deletions

View File

@@ -3,41 +3,53 @@
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<z-nav-bar title="我的账户"></z-nav-bar>
<u-alert
type="warning"
size="20rpx"
:title="goBuyTitle"
:show-icon="true"
>
</u-alert>
<view class="ACTable">
<u-tabs :list="tab_list" @click="tab_click" lineColor="#54a966 100% 100%"
<!-- <u-tabs :list="tab_list" @click="tab_click" lineColor="#54a966 100% 100%"
:activeStyle="{color: '#303133',fontWeight: 'bold',transform: 'scale(1.1)'}" v-if="iosHide"></u-tabs>
<u-tabs :list="tab_list_ios" @click="tab_click" lineColor="#54a966 100% 100%"
:activeStyle="{color: '#303133',fontWeight: 'bold',transform: 'scale(1.1)'}" v-if="!iosHide"></u-tabs>
:activeStyle="{color: '#303133',fontWeight: 'bold',transform: 'scale(1.1)'}" v-if="!iosHide"></u-tabs> -->
<view>
<view
class="AC_chong"
@click="onPageJump('/pages/peanut/reCharge')"
>立即充值
<u-icon
name="arrow-right"
color="#fff"
size="16"
class="rightArrow"
></u-icon>
</view>
</view>
<view v-if="tab_muJian==0">
<view class="AC_mes">
<view style="font-size: 50rpx;font-weight: bold;">{{userMes.peanutCoin}}</view>
<view style="color: #888;font-size: 30rpx;margin-top: 10rpx;">天医币</view>
<text v-if="platform != 'ios'" class="AC_chong" @click="buPoint()">充值</text>
</view>
<view class="AC_con">
<view class="AC_jilu">充值记录</view>
<view class="AC_jilu PM_font">充值消费记录</view>
<view v-for="(item,index) in MoneyRecord" class="AC_List">
<view class="AC_title">
{{item.orderType}}
<view>
<text v-if="item.changeAmount>0">+</text>
<text>{{item.changeAmount}}</text>
天医币
</view>
</view>
<view class="AC_mark">{{item.remark}}</view>
<view class="AC_mark" v-if="item.remark">{{item.remark}}</view>
<view class="AC_note" v-if="item.note&&item.note!='null'">说明{{item.note}}</view>
<view class="AC_time">{{item.createTime}}</view>
</view>
</view>
</view>
<view v-if="tab_muJian==1">
<view class="couponList">
<view v-for="(item,index) in couponTabs" @click="couponTabCLi(index)"
<view v-for="(item,index) in couponTabs"
:class="couponListTab==index?'couStyle':''">{{item.name}}</view>
</view>
<view>
@@ -117,6 +129,7 @@
export default {
data() {
return {
goBuyTitle:'【天医币】仅为我平台支付使用币种 。一人民币=一天医币,仅为了方便用户支付使用。【天医币】可以用于在我平台支付书籍或课程使用。【天医币】这个名称是为适应我们平台的定位属性,所起名称。与区块链虚拟货币无任何关系。',
playData: {},
platform: null,
tab_list: [{
@@ -196,10 +209,7 @@
onLoad(e) {
// 隐藏原生的tabbar
uni.hideTabBar();
// #ifdef APP-PLUS
this.platform = uni.getSystemInfoSync().platform
console.log('操纵系统', this.platform)
// #endif
},
computed: {
...mapState(['userInfo'])
@@ -209,8 +219,6 @@
// 隐藏原生的tabbar
uni.hideTabBar();
this.getData();
this.getCourpe();
},
components: {
musicPlay
@@ -222,6 +230,9 @@
if(!this.iosHide){
this.tab_muJian=1
}
var data = {
userId: this.userInfo.id,
};
// 用户详情
if (this.userInfo.id != undefined) {
this.$http
@@ -230,45 +241,29 @@
this.userMes = res.user
});
}
uni.showLoading({
title: '加载中'
})
// 充值记录
this.$http
.post('book/transactiondetails/list?userId=' + this.userInfo.id + '&page=' + this.RecordScreen
.page + '&limit=' + this.RecordScreen.limit)
.then(res => {
this.MoneyRecord = res.page.list
this.totalPage = res.page.totalPage
this.totalCount = res.page.totalCount
});
$http
.request({
url: 'common/transactionDetails/getTransactionDetailsList',
method: "POST",
data,
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
uni.hideLoading();
this.MoneyRecord = res.transactionDetailsList;
});
},
// 点击tab
tab_click(e) {
this.tab_muJian = e.index
},
// 优惠券
// getCourpe() {
// this.$http
// .post('/book/couponhistory/appGetUserCenterCoupon?userId=' + this.userInfo.id + '&useStatus=' + this
// .couponListTab)
// .then(res => {
// // this.cardList = res.couponVos
// this.cardList = res.couponVos
// });
// },
// 切换优惠券
couponTabCLi(e) {
// this.couponListTab = e
// this.getCourpe()
},
// 充值天医币
buPoint() {
uni.navigateTo({
@@ -314,8 +309,7 @@
}
.AC_con {
margin-top: 50rpx;
padding: 30rpx 30rpx;
padding: 20rpx;
box-shadow: 0 0px 10px 1px #d3d1d133;
background-color: #fff;
border-radius: 15rpx;
@@ -323,20 +317,17 @@
font-size: 30rpx;
.AC_jilu {
font-size: 32rpx;
text-align: center;
margin-bottom: 30rpx;
font-size: 42rpx;
text-align: left;
color: $themeColor;
padding: 20rpx 0;
}
.AC_List {
border-bottom: 1px solid #eee;
padding: 40rpx 10rpx;
overflow: hidden;
.AC_title {
font-size: 32rpx;
margin-bottom: 20rpx;
view {
float: right;
@@ -346,14 +337,21 @@
}
.AC_mark {
font-size: 28rpx;
margin-bottom: 15rpx;
color: #888;
width: 100%;
font-size: 28rpx;
margin-top: 20rpx;
margin-bottom: 15rpx;
color: #888;
display: inline-block;
}
.AC_note {
color: #888;
font-size: 26rpx;
}
.AC_time {
color: #bababa;
font-size: 25rpx;
font-size: 26rpx;
display: inline-block;
}
}
@@ -569,10 +567,28 @@
background: #c6c6c6;
}
}
}
/deep/.u-alert__content__title{
font-size: 24rpx !important;
line-height: 28rpx !important;
}
.AC_chong {
display: flex;
align-items: center;
justify-content: space-between;
background-image: linear-gradient(90deg, #54a966 0%, #a3d7ae 100%);
color: #fff;
border-top-left-radius: 15rpx;
border-top-right-radius: 15rpx;
padding: 20rpx 20rpx;
font-size: 36rpx;
font-weight: 800;
text-align: right;
}
.rightArrow {
width: 40rpx;
height: 40rpx;
float: right;
margin-left: 10rpx;
}
</style>

429
pages/user/points.vue Normal file
View File

@@ -0,0 +1,429 @@
<template>
<view class="commonPageBox">
<z-nav-bar title="我的积分"> </z-nav-bar>
<view class="ACTable"><view>
<view class="AC_con">
<common-list
:dataList="MoneyRecord"
isCondition="true"
isNoIcon="true"
label="orderType"
>
<template slot="labelSlot" slot-scope="slotProps">
<view class="label_content AC_List" @click="slotProps.row.relationId?goClick(slotProps.row.relationId):''">
<view class="point_box">
<view class="title"><view class="AC_time">{{slotProps.row.createTime}}</view></view>
<view class="Hot">
<text v-if="slotProps.row.changeAmount > 0">+</text>
<text>{{slotProps.row.changeAmount}}</text>
</view>
</view>
<view class="AC_mark" v-if="slotProps.row.remark">{{slotProps.row.remark}}</view>
</view>
</template>
</common-list>
</view>
</view>
<view style="padding-bottom: 20rpx">
<u-back-top
:scroll-top="scrollTop"
bottom="60"
:customStyle="bgiStyle"
:iconStyle="iconStyle"
>
</u-back-top>
</view>
</view>
</view>
</template>
<script>
import $http from "@/config/requestConfig.js";
import { mapState } from "vuex";
export default {
data() {
return {
playData: {},
platform: null,
urlList: {
list: "common/jfTransactionDetails/getJfTransactionDetailsList",
},
cardList: [],
couponListTab: 0,
MoneyRecord: [],
userMes: {},
RecordScreen: {
userid: "",
page: 1,
limit: 5,
},
scrollTop: 0,
status: 3,
totalPage: 0,
totalCount: 0,
tab_muJian: 0,
bgiStyle: {
background: "#bbe5d8",
},
iconStyle: {
fontSize: "40rpx",
fontWeight: "bold",
color: "#54a966",
},
};
},
// 返回顶部
onPageScroll(e) {
this.scrollTop = e.scrollTop;
},
//第一次加载
onLoad(e) {
},
computed: {
...mapState(["userInfo"]),
},
//页面显示
onShow() {
this.getData();
},
//方法
methods: {
//列表进入详情
goClick(id){
uni.navigateTo({
url: "/pages/detail/orderLCont?orderId=" + id
});
},
//获取数据
getData() {
var data = {
userId: this.userInfo.id,
};
if (!this.iosHide) {
this.tab_muJian = 1;
}
//用户详情
if (this.userInfo.id != undefined) {
this.$http.post("book/user/info/" + this.userInfo.id).then((res) => {
this.userMes = res.user;
});
}
uni.showLoading({
title: '加载中'
})
$http.request({
url: this.urlList.list,
method: "POST",
data,
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
uni.hideLoading();
this.MoneyRecord = res.transactionDetailsList;
});
},
},
};
</script>
<style lang="scss" scoped>
.ACTable {
padding: 20rpx;
.AC_mes {
width: 100%;
height: 300rpx;
padding: 40rpx 20rpx;
box-shadow: 0 0px 10px 1px #d3d1d133;
border-radius: 15rpx;
margin-bottom: 10rpx;
position: relative;
.wallet_title {
color: #333;
font-size: 40rpx;
line-height: 60rpx;
font-weight: 500 !important;
margin-bottom: 20rpx;
}
.wallet_number {
color: #333;
font-size: 80rpx;
line-height: 80rpx;
font-weight: bold;
}
}
.AC_con {
overflow: hidden;
border-radius: 15rpx;
font-size: 30rpx;
padding-bottom: 30rpx;
.AC_jilu {
font-size: 42rpx;
text-align: left;
color: #3d75bf;
padding: 10rpx 20rpx 40rpx;
}
/deep/.list_item {
background-color: rgba(255, 255, 255, 0.85) !important;
box-shadow: 0 0px 10px 1px #d3d1d133 !important;
}
}
.couponList {
view {
display: inline-block;
padding: 0 0 25rpx 0;
margin: 40rpx 0 40rpx 0;
width: 33%;
text-align: center;
font-size: 30rpx;
}
.couStyle {
border-bottom: 5rpx solid #54a966;
color: #54a966;
font-weight: bold;
}
}
.card {
width: 100%;
overflow: hidden;
margin-bottom: 30rpx;
padding-left: 10rpx;
position: relative;
}
.card > view {
background: #fff;
border-radius: 5rpx;
}
.card .dot-left,
.card .dot-right {
display: block;
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #f5f5f5;
position: absolute;
z-index: 999;
}
.card .dot-left {
bottom: -6rpx;
left: -6rpx;
}
.card .dot-right {
bottom: -6rpx;
right: -6rpx;
}
.card .page-group {
position: absolute;
top: 10rpx;
left: -2rpx;
width: 100%;
max-width: 200rpx;
.fold-page {
display: block;
width: 10rpx;
height: 8rpx;
background: #54a966;
transform: skewY(-40deg);
position: absolute;
top: -5rpx;
left: -8rpx;
z-index: 0;
}
.page {
position: absolute;
z-index: 1;
display: block;
padding: 5rpx 20rpx 3rpx 20rpx;
height: 40rpx;
line-height: 40rpx;
background: linear-gradient(137deg, #54a966 0%, #0d5e1e 100%);
border-radius: 0 20rpx 20rpx 0;
color: #fff;
text-align: center;
font-size: 24rpx;
overflow: hidden;
left: -8rpx;
}
}
.card .page-group.grey {
.fold-page {
background: #c6c6c6;
}
.page {
background: linear-gradient(137deg, #c6c6c6 0%, #999595 100%);
}
}
.card .content {
width: 100%;
height: 180rpx;
border-bottom: 1rpx dotted #f5f5f5;
position: relative;
z-index: 2;
}
.card .content .coupon-detail {
display: flex;
padding: 0 15rpx 0 20rpx;
}
.card .content .coupon-detail > view {
height: 130rpx;
display: flex;
align-items: center;
}
.card .content .coupon-detail > view:first-child {
color: #54a966;
padding-top: 100rpx;
width: 30%;
}
.card .content .coupon-detail > view.grey {
color: #c6c6c6;
}
.card .content .coupon-detail > view:first-child > span:first-child {
font-size: 30rpx;
margin: 0 10rpx 0 0;
}
.card .content .coupon-detail > view:first-child > span:last-child {
font-size: 70rpx;
}
.card .content .coupon-detail > view:last-child > view {
color: #54a966;
border: 1rpx solid #54a966;
border-radius: 50rpx;
font-size: 12px;
line-height: 25px;
width: 150rpx;
height: 50rpx;
margin: 100rpx 0 0 5rpx;
text-align: center;
}
.card .coupon-detail > view:nth-child(2) {
flex-direction: column;
padding-top: 60rpx;
width: 40%;
}
.card .coupon-detail > view:nth-child(2) > view {
width: 100%;
}
.card .coupon-detail > view:nth-child(2) > view:first-child {
color: #333;
font-weight: bold;
font-size: 25rpx;
margin: 0 0 10rpx 0;
}
.card .coupon-detail > view:nth-child(2) > view:last-child {
font-size: 12px;
color: #adadad;
margin-top: 5rpx;
}
.card .coupon-detail > view:nth-child(2) > view:last-child > view {
transform: scale(0.8);
margin-left: -14rpx;
}
.card {
.footer {
color: #999;
font-size: 12px;
padding: 30rpx 15rpx 30rpx 30rpx;
}
.ribbon {
width: 160rpx;
height: 40rpx;
background: #54a966;
position: absolute;
right: -40rpx;
top: 25rpx;
transform: rotateZ(45deg);
text-align: center;
color: #fff;
font-size: 20rpx;
line-height: 44rpx;
}
.ribbon.grey {
background: #c6c6c6;
}
}
}
.Hot {
color: #333 !important;
font-size: 32rpx;
font-weight: bold;
}
.AC_chong {
display: flex;
align-items: center;
justify-content: space-between;
background-image: linear-gradient(90deg, #258feb 0%, #73ee9c 100%);
color: #fff;
border-top-left-radius: 15rpx;
border-top-right-radius: 15rpx;
padding: 20rpx 20rpx;
font-size: 36rpx;
font-weight: 800;
text-align: right;
}
.rightArrow {
width: 40rpx;
height: 40rpx;
float: right;
margin-left: 10rpx;
}
.point_box{
display: flex;
align-items: center;
justify-content: space-between;
padding: 10rpx 0;
}
.title{
font-size: 32rpx;
font-weight: bold;
}
.AC_mark {
width: 100%;
display: block;
font-size: 28rpx;
color: #343434;
padding-top: 10rpx;
}
.AC_time {
color: #909090;
font-size: 28rpx;
padding-top: 10rpx;
}
</style>