Commit 672d031a authored by youjie's avatar youjie

幸福存折 ,积分

parent 89f7ed66
......@@ -59,7 +59,7 @@
border-radius: 18rpx;
}
.vip-box-unactive .vip-logo{
right: 34rpx;
right: 0;
width: 87rpx;
height: 99rpx;
top: -37rpx;
......
......@@ -135,6 +135,40 @@
"titlePenetrate": "YES"
}
}
},
{
"path": "happinessPasDetails",
"style": {
"navigationBarBackgroundColor": "#F3F1EF",
"backgroundColor": "#F3F1EF"
}
},
{
"path": "points",
"style": {
"navigationStyle": "custom",
"mp-alipay": {
"transparentTitle": "always",
"titlePenetrate": "YES"
}
}
},
{
"path": "pointsDetails",
"style": {
"navigationBarBackgroundColor": "#F3F1EF",
"backgroundColor": "#F3F1EF"
}
},
{
"path": "costSavingStatistics",
"style": {
"navigationStyle": "custom",
"mp-alipay": {
"transparentTitle": "always",
"titlePenetrate": "YES"
}
}
}
]
},
......
<template>
<view class="userHeaderBox">
<view class="titlenav" :style="{ paddingTop: nav }">
<view class="carrHeader-left-icon" @click="goBack">
<u-icon name="arrow-left" size="38" color="#000"></u-icon>
</view>
{{ pageTitle }}
</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar :src="b2b_user_info.photo?b2b_user_info.photo:user_info.avatar" size="97" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image> -->
</view>
<view class="col column">
<text v-if="b2b_user_info&&b2b_user_info.name"
class="userHeadPicR_title" @click="navigatorToProfile">
{{ b2b_user_info.name }}
</text>
<text v-else-if="mall_UserInfo&&mall_UserInfo.Name"
class="userHeadPicR_title">
{{mall_UserInfo.Name}}
</text>
<text v-else class="userHeadPicR_title" @click="login(user_info)">
立即登录
</text>
<text class="userHeadPicR_text">销售:{{ b2b_user_info.salesBaseInfo.emName }}等3人</text>
</view>
</view>
<view class="userHeadPasBox">
<view class="userHeadPNumBox row-sb-n">
<view class="userHeadPNum">
<view class="userHeadPNumT">当前余额</view>
<view class="userHeadPNumB">
<text></text>
10550
</view>
</view>
<view class="userHeadPNum active">
<view class="userHeadPNumT">待结算</view>
<view class="userHeadPNumB">
<text></text>
10550
</view>
</view>
</view>
<view class="userHeadPNumS row-sb-n">
<view class="userHeadPNumSL">累计已省</view>
<view class="userHeadPNumSR">
<text>15818</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props:['user_info','b2b_user_info'],
data() {
return {
pageTitle: "幸福存折",
nav: 0,
progress:[
{
text:'1',
colorStyle: 'active',
radiusL: '',
radiusR: '',
},
{
text:'2',
colorStyle: 'active',
radiusL: '',
radiusR: '',
},
{
text:'3',
colorStyle: 'active',
radiusL: '',
radiusR: '',
},
{
text:'4',
colorStyle: 'active',
radiusL: '',
radiusR: '',
},
{
text:'',
colorStyle: '',
radiusL: '',
radiusR: '',
img:'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638732528736165089.png'
},
],
};
},
components: {},
computed: {
},
created() {
},
onLoad() {
this.nav = uni.getSystemInfoSync().statusBarHeight + "px";
},
mounted() {
},
onShow() {
},
methods: {
goBack(){
uni.navigateBack({delta:-1})
},
navigatorToProfile(){
// #ifdef MP-DI
uni.navigateTo({
url:'/pages/user-center/user-profile'
})
// #endif
},
},
};
</script>
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.userHeaderBox{
width: 750rpx;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774883791846536.png')no-repeat #F3F2EF;
background-size: 100% auto;
padding-top: 118rpx;
position: relative;
}
.carrHeader-left-icon{
position: absolute;
left: 32rpx;
top: 119rpx;
z-index: 2;
}
.titlenav {
width: 100%;
text-align: center;
font-size: 16px;
color: #000;
}
.userHeadPic{
padding: 49rpx 20rpx 25rpx 62rpx;
}
.userHeadPicL{
width: 97rpx;
height: 97rpx;
overflow: hidden;
border-radius: 50%;
margin-right: 27rpx;
}
.userHeadPicL image{
width: 97rpx;
height: 97rpx;
display: block;
}
.userHeadPicR_title{
font-family: PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #080A09;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.userHeadPicR_text{
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #61462E;
margin-top: 16rpx;
letter-spacing: 1rpx;
}
.jz_LineDetaVipPr{
margin-top: 28rpx;
position: relative;
left: -20rpx;
}
.jz_LineDetaVip{
width: 100%;
height: 120rpx;
background: linear-gradient(90deg, #3F423F, #313131);
border-radius: 18rpx;
display: flex;
flex-direction: column;
padding: 15rpx 0 6rpx 0;
margin-top: 18rpx;
margin-bottom: 18rpx;
}
.jz_LineDetaVipTop{
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #E2C27A;
letter-spacing: .1rpx;
display: flex;
align-content: center;
padding: 0 34rpx;
}
.jz_LineDetaVipTop img{
width: 21rpx;
height: 21rpx;
display: inline-block;
margin-left: 5rpx;
}
.jz_LineDetaVPB{
display: flex;
}
.jz_LineDetaVPBBox{
display: flex;
align-items: center;
width: 1px;
flex: 1;
}
.jz_LineDetaVPBN{
width: 30rpx;
height: 30rpx;
background: #2E2E2E;
border-radius: 50%;
text-align: center;
line-height: 28rpx;
font-family: DIN Black;
font-weight: bold;
font-size: 24rpx;
color: #494949;;
}
.jz_LineDetaVPBLine{
flex: 1;
height: 10rpx;
background: #000;
}
.jz_LineDetaVPBBoxI{
position: relative;
flex: 1;
}
.jz_LineDetaVPBBoxI img{
width: 87rpx;
height: 99rpx;
position: absolute;
bottom: -35rpx;
right: 8rpx;
z-index: 2;
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBN{
background: linear-gradient(270deg, #C99E59, #FFFFB3);
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBLine{
background: #C99E59;
color: #583F2C;
}
.VPBLRadiusL{
border-radius: 20rpx 0 0 20rpx ;
}
.VPBLRadiusR{
border-radius: 0 20rpx 20rpx 0;
}
.jz_LineDetaVPBY{
position: absolute;
left: -29rpx;
right: 0;
top: 0;
}
.userHeadPasBox{
padding: 0 30rpx;
}
.userHeadPNum{
width: 330rpx;
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 20rpx 40rpx 50rpx;
}
.userHeadPNumT{
font-weight: 500;
font-size: 28rpx;
color: #4F360D;
margin-bottom: 21rpx;
}
.userHeadPNumB{
color: #FF3166 ;
font-size: 48rpx;
font-weight: bold;
}
.userHeadPNumB text{
font-size: 29rpx;
}
.userHeadPNum.active .userHeadPNumB{
color: #4F360D;
}
.userHeadPNumS{
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 40rpx 40rpx 50rpx;
margin-top: 30rpx;
margin-bottom: 40rpx;
}
.userHeadPNumSL{
font-size: 29rpx;
color: #4F360D;
}
.userHeadPNumSR{
color: #4F360D ;
font-size: 29rpx;
font-weight: bold;
}
.userHeadPNumSR text{
font-size: 48rpx;
}
</style>
<template>
<view class="userHeaderBox" v-if="statistics">
<view class="userHeaderBox" v-if="statistics"
:style="[titleStyle]">
<view class="titlenav" :style="{ paddingTop: nav }">{{ pageTitle }}</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar :src="b2b_user_info.photo?b2b_user_info.photo:user_info.avatar" size="97" shape="circle"></u-avatar>
<u-avatar v-if="b2b_user_info.photo||statistics.image" :src="b2b_user_info.photo?b2b_user_info.photo:statistics.image" size="97" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" size="97" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image> -->
</view>
<view class="col column">
......@@ -27,29 +29,29 @@
<view class="userHeadPasBox">
<view class="userHeadPas column">
<view class="userHeadPasTop">
<view class="userHeadPasT_Num row-sb-n" v-if="statistics.balance>=0">
<view class="userHeadPasT_Num row-sb-n">
<!-- #ifdef MP-AG-->
<view class="column">
<text>{{formatNumberWithUnit(statistics.balance)}}</text>
<view class="column" @click="goUrl('/pages/user-center/happinessPassbook')">
<text>{{statistics.balance>0?formatNumberWithUnit(statistics.balance):0}}</text>
<text class="userHeadPasTTeT">
幸福存折
</text>
</view>
<!-- #endif -->
<view class="column">
<text>{{ statistics.integral }}</text>
<view class="column" @click="goUrl('/pages/user-center/points')">
<text>{{ statistics.integral?statistics.integral:0 }}</text>
<text class="userHeadPasTTeT">
我的积分
</text>
</view>
<view class="column">
<text>
{{formatNumberWithUnit(statistics.totalSavings)}}
{{statistics.totalSavings>0?formatNumberWithUnit(statistics.totalSavings):0}}
</text>
<text class="userHeadPasTTeT">累计已省</text>
</view>
<view class="column" @click="goUrl('/pages/coupon/index/index')">
<text>{{ statistics.couponNum }}</text>
<text>{{ statistics.couponNum?statistics.couponNum:0 }}</text>
<text class="userHeadPasTTeT">优惠券</text>
</view>
</view>
......@@ -71,14 +73,14 @@
<script>
import vipUser from "@/components/vip/vipUser.vue";
export default {
props:['user_info','statistics','b2b_user_info'],
props:['statistics','b2b_user_info'],
components: {vipUser},
data() {
return {
pageTitle: "个人中心",
nav: 0,
progress:[],
titleStyle:{}
};
},
......@@ -100,7 +102,14 @@
this.nav = uni.getSystemInfoSync().statusBarHeight + "px";
},
mounted() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
},
onShow() {
......@@ -130,21 +139,14 @@
this.$emit('login')
}
},
navigatorToProfile(){
// #ifdef MP-DI
uni.navigateTo({
url:'/pages/user-center/user-profile'
})
// #endif
},
goUrl(url){
if(url=='/pages/user-center/user-profile'){
// #ifdef MP-DI
uni.navigateTo({
url:url
})
return
// #endif
return
}
uni.navigateTo({
url:url
......@@ -317,7 +319,7 @@
padding-top: 7rpx;
}
.userHeadPasButtom{
padding: 30rpx 0 50rpx 39rpx;
padding: 30rpx 38rpx 50rpx 39rpx;
}
.userHeadPasButText{
font-family: PingFang SC;
......
<template>
<view class="userHeaderBox">
<view class="userHeaderBox"
:style="[titleStyle]">
<view class="titlenav" :style="{ paddingTop: nav }">{{ pageTitle }}</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar :src="b2b_user_info.photo?b2b_user_info.photo:user_info.avatar" size="70" shape="circle"></u-avatar>
<u-avatar v-if="b2b_user_info.photo||statistics.image" :src="b2b_user_info.photo?b2b_user_info.photo:statistics.image" size="70" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748864186439447.png" size="70" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748864186439447.png" mode="widthFix"></image> -->
</view>
<view class="col column">
<text v-if="b2b_user_info&&b2b_user_info.name"
class="userHeadPicR_title" @click="navigatorToProfile">
class="userHeadPicR_title" @click="goUrl('/pages/user-center/user-profile')">
{{ b2b_user_info.name }}
</text>
<text v-else-if="mall_UserInfo&&mall_UserInfo.Name"
......@@ -39,25 +41,25 @@
<view class="userHeadPasTop">
<view class="userHeadPasT_Num row-sbs-n" v-if="statistics">
<!-- #ifdef MP-AG-->
<view class="column">
<text>{{formatNumberWithUnit(statistics.balance)}}</text>
<view class="column" @click="goUrl('/pages/user-center/happinessPassbook')">
<text>{{ statistics.balance>0?formatNumberWithUnit(statistics.balance):0}}</text>
<text class="userHeadPasTTeT">
幸福存折
</text>
</view>
<!-- #endif -->
<view class="column">
<text>{{ statistics.integral }}</text>
<view class="column" @click="goUrl('/pages/user-center/points')">
<text>{{ statistics.integral>0?statistics.integral:0 }}</text>
<text class="userHeadPasTTeT">
我的积分
</text>
</view>
<view class="column">
<text>{{formatNumberWithUnit(statistics.totalSavings)}}</text>
<text>{{statistics.totalSavings>0?formatNumberWithUnit(statistics.totalSavings):0}}</text>
<text class="userHeadPasTTeT">累计已省</text>
</view>
<view class="column" @click="goUrl('/pages/coupon/index/index')">
<text class="userHeadPasTextb">{{ statistics.couponNum }}</text>
<text class="userHeadPasTextb">{{ statistics.couponNum>=0?statistics.couponNum:0 }}</text>
<text class="userHeadPasTTeT">优惠券</text>
</view>
</view>
......@@ -70,11 +72,12 @@
<script>
export default {
props:['user_info','b2b_user_info','statistics'],
props:['b2b_user_info','statistics'],
data() {
return {
pageTitle: "个人中心",
nav: 0,
titleStyle: {}
};
},
components: {},
......@@ -86,7 +89,14 @@
},
mounted() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
},
onShow() {
......@@ -125,6 +135,14 @@
},
goUrl(url){
if(url=='/pages/user-center/user-profile'){
// #ifdef MP-DI
uni.navigateTo({
url:url
})
// #endif
return
}
uni.navigateTo({
url:url
})
......
<template>
<view style="width:100vw;height:100vh;" class="column">
<scroll-view :scroll-y="true" @scroll="scrollHandler" @scrolltoupper="scrollTopHandler" class="col" style="height: 1px;width: 100%;">
<view class="userStyle">
<view class="headStatus" v-if="scrollTop > 50" :style="{
zIndex: scrollTop < 10 ? 'unset' : 2,
opacity: scrollTop < 10 ? '100' : scrollTop,
}">
<view class="title">{{ pageTitle }}</view>
</view>
<view class="userBox" style="height:100vh">
<view class="userHeaderBox" :style="[titleStyle]">
<view class="titlenav">
<view class="carrHeader-left-icon" @click="goBack">
<u-icon name="arrow-left" size="38" color="#000"></u-icon>
</view>
{{ pageTitle }}
</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar v-if="b2b_user_info.photo||statistics.image" :src="b2b_user_info.photo?b2b_user_info.photo:statistics.image" size="99" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" size="99" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image> -->
</view>
<view class="col column">
<text v-if="b2b_user_info&&b2b_user_info.name"
class="userHeadPicR_title" @click="navigatorToProfile">
Hello,{{ b2b_user_info.name }}
</text>
<text v-else-if="mall_UserInfo&&mall_UserInfo.Name"
class="userHeadPicR_title">
Hello,{{mall_UserInfo.Name}}
</text>
<text class="userHeadPicR_text">
尊敬的VIP用户,<!-- #ifdef MP-DI -->国旅优选<!-- #endif --><!-- #ifdef MP-AG -->旅小友<!-- #endif -->已与您同行
<text style="font-size: 28rpx;color: #9B571E;font-weight: bold;">318</text>
</text>
</view>
</view>
<view class="userHeadPasBox">
<view class="userHeadCostBox">
<view class="userHeadCostType row-sb-n items-center">
<view class="userHeadCostTText row items-center justify-center"
v-for="(item,index) in typeList" :key="index"
:class="[msg.Type==item.ID?'active':'']"
@click="research(item.ID)">
<image v-if="msg.Type==item.ID" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638778211798604496.png" />
<text>{{ item.Name }}</text>
</view>
</view>
<view class="userHeadCostTime row justify-center">
<view>2025.02-2025.08</view>
</view>
<view class="userHeadCostChart">
// <mrsongCharts
// type='ring'
// align='center'
// :config="config"
// :options="options" />
</view>
</view>
</view>
</view>
<view style="height: 21rpx;"></view>
<view style="padding: 0 32rpx;width: 100vw;height: 1px;flex: 1;">
<view class="userMyOrderBox column">
<view class="userMyOrderTitle row-sb-n" style="padding: 20rpx 0;">
<view class="userMyOrderTL">幸福存折明细</view>
<view class="userMyOrderTR row items-center" @click="goUrl('/pages/user-center/happinessPassbook')">
<text class="userMyOrderTRTj">合计</text>
<view class="userMyOrderTRQ"> <text>¥</text><text>900</text></view>
<u-icon class="userMyOrderTRR" name="arrow-down" size="28" color="#B2B3B3"></u-icon>
</view>
</view>
<scroll-view :scroll-y="true" class="col"
@scrolltolower="lower"
style="height: 1px;flex: 1; width: 100%;">
<view class="userHeadPListBox">
<view class="userHeadPList row"
v-for="(item,index) in dataList" :key="index"
@click="goDetails(item)">
<view class="userHeadPListL">
<image mode="scaleToFill" :src="item.imgCover"/>
<text>共4人</text>
</view>
<view class="userHeadPListA col column">
<view class="userHeadPListATitel">{{ item.lineName }}</view>
<view class="userHeadPListATime">
{{ item.updateTime }}
</view>
</view>
<view class="userHeadPListR">
{{ item.money }}
</view>
</view>
</view>
<u-empty v-if="dataList.length == 0 && !loading" text="暂无数据" mode="data" padding-top="20"></u-empty>
<u-loadmore v-else :status="status" :load-text="loadText" :font-size="24" :margin-top="20" :margin-bottom="20" bg-color="#fff" />
</scroll-view>
</view>
</view>
</view>
</view>
</scroll-view>
<u-picker mode="time" v-model="showTime" :defaultTime="times" :params="params" @confirm = 'confirm'></u-picker>
</view>
</template>
<script>
// import mrsongCharts from '@/uni_modules/mrsong-charts/components/mrsong-charts/mrsong-charts.vue';
export default {
components: {
// mrsongCharts
},
data() {
return {
pageTitle: "省钱统计",
scrollTop: 0,
showAuth: false,
b2b_user_info: {},
mall_UserInfo: {},
typeList:[
{Name:'累计省钱',ID:0},
{Name:'月度省钱',ID:1},
{Name:'年度省钱',ID:2},
],
msg:{
pageIndex:1,//是 [string]
pageSize:10,//是 [string]
BalanceState:0,// 状态 1查询已反记录 2查询待结算记录
Type:0,// 类型 1存入 2扣除
StartTime:'',// 开始时间
EndTime:'',
},
statistics:{},
dataList: [],
status: "加载中",
page_count: 0,
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
loading: false,
showTime: false,
params: {
year: true,
month: true,
day: false,
hour: false,
minute: false,
second: false
},
year: '',
month: '',
times: '',
CustomerBalance:{},
titleStyle:{},
config:{
itemCount: 3, // x轴单屏显示数据的数量,默认为5个
scrollShow: false, // 新增是否显示滚动条,默认false
scrollAlign: 'left', // 滚动条初始位置
rotateLabel: true, // X轴label旋转
min: 0, // Y轴最小值
// "max": 150, //Y轴大值
unit: '', // Y轴单位
enableScroll: false, // 开启滚动模式
color: [
// 颜色设置
'#9A60B4',
'#ea7ccc'
]
},
options:{
background: "#000000",
color: ['#080A09', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'],
xAxis: {
itemCount: 4, // x轴单屏显示数据的数量,默认为5个
scrollShow: false, // 新增是否显示滚动条,默认false
scrollAlign: 'left', // 滚动条初始位置
rotateLabel: true // X轴label旋转
},
yAxis: {
data: [
{
min: 0, // Y轴最小值
// "max": 150, //Y轴大值
unit: '' // Y轴单位
}
]
},
enableScroll: false, // 开启滚动模式
fontColor: "#4F360D",
padding:[
20,20,20,20
]
}
};
},
onLoad() {
this.b2b_user_info = uni.getStorageSync('b2b_user');
this.mall_UserInfo = uni.getStorageSync("mall_UserInfo");
this.showAuth = !this.mall_UserInfo || !this.b2b_user_info;
},
onShow() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
const now = new Date();
this.year = now.getFullYear();
this.month = String(now.getMonth() + 1).padStart(2, '0');
this.msg.StartTime = this.year + '-' + this.month + '-01'
now.setMonth(now.getMonth() + 1, 0);
this.msg.EndTime = this.year + '-' + this.month + '-'+now.getDate()
this.times = this.year + '-' + this.month
this.getList();
this.GetCustomerCenter()
this.GetCustomerBalance()
},
methods: {
confirm(e){
if(this.year==e.year&&this.month==e.month) return
this.year = e.year
this.month = e.month
this.times = this.year + '-' + this.month
const now = new Date(this.year, this.month, 1); // 设置为下个月第1天
now.setDate(now.getDate() - 1); // 减1天即为上个月最后一天
this.msg.StartTime = this.year + '-' + this.month + '-01'
this.msg.EndTime = this.year + '-' + this.month + '-'+now.getDate()
this.research()
},
SelectDate(){
this.showTime = true
},
goDetails(item) {
if(url) {
let path = `/pages/user-center/happinessPasDetails?data=`+encodeURIComponent(item)
uni.navigateTo({
url: path,
});
}
},
scrollHandler(e) {
this.scrollTop = e.detail.scrollTop;
},
scrollTopHandler() {
this.scrollTop = 0;
},
goUrl(url) {
uni.navigateTo({ url });
},
GetCustomerCenter(){
this.apipost('b2b_get_GetCustomerCenter_New',
{},
(res) => {
uni.hideLoading()
this.statistics = res.data
},err=>{
uni.showToast({
title: err.message,
icon: "none",
});
}
);
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.getList();
} else {
this.status = "nomore";
}
},
research(ID) {
if(ID==this.msg.Type) return
if(ID>=0) this.msg.Type = ID
this.msg.pageIndex = 1
this.dataList = []
this.getList()
},
getList() {
this.loading = true
uni.showLoading({
title: '加载中',
icon: 'none'
})
this.apipost('b2b_get_GetCustomerBalancePageList',this.msg,
(res) => {
this.loading = false
uni.hideLoading();
this.dataList = this.dataList.concat(res.data.pageData)
this.page_count = res.data.pageCount;
},(err)=>{
this.loading = false
uni.hideLoading();
}
);
},
GetCustomerBalance() {
this.apipost("b2b_get_GetCustomerBalanceDetail",{},
(res) => {
this.CustomerBalance = res.data
}
);
},
goBack(){
uni.navigateBack({delta:-1})
}
}
};
</script>
<style scoped>
@import url('../../asset/css/flex.css');
.row-sbas-n {
justify-content: space-between;
}
.relative {
position: relative;
}
.userStyle .userBox {
display: flex;
flex-direction: column;
align-items: center;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774847991690497.png')no-repeat #E8D1A2;
background-size: 100% auto;
height: 100vh;
// padding-bottom: env(safe-area-inset-bottom);
}
.order_bar_list {
padding: 22rpx 55rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.order_bar_item {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20rpx;
position: relative;
}
.badge {
position: absolute;
right: -10rpx;
top: -10rpx;
padding: 0 8rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 20rpx;
background: #FF3166;
color: #fff;
min-width: 28rpx;
height: 28rpx;
border-radius: 14rpx;
}
.headStatus {
position: fixed;
width: 140vw;
padding-right: 40vw;
padding-bottom: 10px;
left: 0;
right: 0;
top: 0;
display: flex;
background-image: linear-gradient(to right, #e6b865, #ebb45e);
}
.headStatus .title {
font-size: 18px;
color: #fff;
flex: 1;
width: 1px;
line-height: 34px;
text-align: center;
}
.userMyOrder {
background: #FFF;
border-radius: 20rpx;
padding: 33rpx 0 22rpx 0;
}
.userMyOrderTitle {
padding: 23rpx 31rpx 0 31rpx;
}
.userMyOrderTitL {
font-family: PingFang SC;
font-weight: 800;
font-size: 32rpx;
color: #080A09;
}
.userMyOrderTitR {
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #B2B3B3;
align-items: center;
}
.userMyOrderTitRIght {
margin-left: 11rpx;
transform: rotate(90deg);
}
.orderProductBox {
padding: 0 20rpx;
}
.orderProduct {
width: 648rpx;
height: 132rpx;
background: #F7F7F7;
border-radius: 18rpx;
padding: 21rpx 20rpx;
}
.orderProductL {
width: 91rpx;
height: 88rpx;
border-radius: 14rpx;
overflow: hidden;
margin-right: 18rpx;
}
.orderProductR_state {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #080A09;
padding-top: 5rpx;
}
.orderProductR_text {
width: 100%;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #8C8C8C;
padding-top: 4rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.userMyOrderBox{
background: #FFFFFF;
height: 100%;
overflow: hidden;
border-radius: 20rpx;
padding: 25rpx 34rpx 45rpx 34rpx;
}
.userHeadPList{
padding: 20rpx 0;
}
.userHeadPListL{
width: 91rpx;
height: 88rpx;
border-radius: 14rpx;
overflow: hidden;
position: relative;
}
.userHeadPListL image{
width: 91rpx;
height: 88rpx;
display: block;
}
.userHeadPListL text{
position: absolute;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
background: rgb(178, 179, 179,.8);
border-radius: 0rpx 0rpx 14rpx 14rpx;
color: #fff;
font-size: 20rpx;
padding: 5rpx 0;
text-align: center;
}
.userHeadPListA{
margin-left: 29rpx;
margin-right: 20rpx;
}
.userHeadPListATitel{
font-weight: bold;
font-size: 28rpx;
color: #080A09;
margin-top: 5rpx;
}
.userHeadPListATime{
font-weight: 500;
font-size: 24rpx;
color: #8C8C8C;
margin-top: 18rpx;
}
.userHeadPListR{
font-weight: bold;
font-size: 28rpx;
color: #B99846;
}
.userHeaderBox{
width: 750rpx;
}
.titlenav {
width: 100%;
text-align: center;
font-size: 16px;
color: #000;
position: relative;
}
.carrHeader-left-icon{
position: absolute;
left: 32rpx;
top: 7rpx;
z-index: 2;
}
.userHeadPic{
padding: 49rpx 20rpx 25rpx 62rpx;
}
.userHeadPicL{
width: 97rpx;
height: 97rpx;
overflow: hidden;
border-radius: 50%;
margin-right: 27rpx;
}
.userHeadPicL image{
width: 97rpx;
height: 97rpx;
display: block;
}
.userHeadPicR_title{
font-family: PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #080A09;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.userHeadPicR_text{
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #61462E;
margin-top: 16rpx;
letter-spacing: 1rpx;
}
.jz_LineDetaVipPr{
margin-top: 28rpx;
position: relative;
left: -20rpx;
}
.jz_LineDetaVip{
width: 100%;
height: 120rpx;
background: linear-gradient(90deg, #3F423F, #313131);
border-radius: 18rpx;
display: flex;
flex-direction: column;
padding: 15rpx 0 6rpx 0;
margin-top: 18rpx;
margin-bottom: 18rpx;
}
.jz_LineDetaVipTop{
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #E2C27A;
letter-spacing: .1rpx;
display: flex;
align-content: center;
padding: 0 34rpx;
}
.jz_LineDetaVipTop img{
width: 21rpx;
height: 21rpx;
display: inline-block;
margin-left: 5rpx;
}
.jz_LineDetaVPB{
display: flex;
}
.jz_LineDetaVPBBox{
display: flex;
align-items: center;
width: 1px;
flex: 1;
}
.jz_LineDetaVPBN{
width: 30rpx;
height: 30rpx;
background: #2E2E2E;
border-radius: 50%;
text-align: center;
line-height: 28rpx;
font-family: DIN Black;
font-weight: bold;
font-size: 24rpx;
color: #494949;;
}
.jz_LineDetaVPBLine{
flex: 1;
height: 10rpx;
background: #000;
}
.jz_LineDetaVPBBoxI{
position: relative;
flex: 1;
}
.jz_LineDetaVPBBoxI img{
width: 87rpx;
height: 99rpx;
position: absolute;
bottom: -35rpx;
right: 8rpx;
z-index: 2;
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBN{
background: linear-gradient(270deg, #C99E59, #FFFFB3);
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBLine{
background: #C99E59;
color: #583F2C;
}
.VPBLRadiusL{
border-radius: 20rpx 0 0 20rpx ;
}
.VPBLRadiusR{
border-radius: 0 20rpx 20rpx 0;
}
.jz_LineDetaVPBY{
position: absolute;
left: -29rpx;
right: 0;
top: 0;
}
.userHeadPasBox{
padding: 0 30rpx;
}
.userHeadCostBox{
border-radius: 16rpx;
background: -webkit-gradient(linear, 0 0, 0 100%, from(#FBF3E1), to(#F3E1BA));
padding: 25rpx 22rpx 51rpx 22rpx;
}
.userHeadCostType{
width: 641rpx;
height: 93rpx;
background: url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638778209274571586.png")no-repeat;
background-size: 641rpx auto;
padding: 13rpx 16rpx;
}
.userHeadCostType image{
width: 34rpx;
height: 34rpx;
}
.userHeadCostTText{
flex: 1;
line-height: 64rpx;
font-weight: bold;
font-size: 26rpx;
color: #4F360D;
text-align: center;
}
.userHeadCostTText.active{
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(247,236,211,0.38);
border-radius: 14rpx;
background: -webkit-gradient(linear, 0 0, 0 100%, from(#313131), to(#3F423F ));
color: #F3F1EF;
}
.userHeadCostTime{
padding: 32rpx 0 0 0;
}
.userHeadCostTime view{
font-weight: 500;
font-size: 24rpx;
color: #4F360D;
background: #EDDDBA;
box-shadow: 0rpx 0rpx 4rpx 0rpx rgba(211,181,119,0.5);
border-radius: 19rpx;
padding: 0 23rpx;
}
.userHeadCostChart{
height: 440rpx;
// overflow: hidden;
}
.userMyOrderTL{
font-weight: 800;
font-size: 32rpx;
color: #080A09;
}
.userMyOrderTRTj{
font-weight: 500;
font-size: 24rpx;
color: #B2B3B3;
}
.userMyOrderTRQ{
font-weight: bold;
font-size: 36rpx;
color: #000;
padding: 0 7rpx 0 10rpx;
}
.userMyOrderTRQ:first-child{
font-size: 26rpx;
}
.userMyOrderTRR{
transform: rotate(-90deg);
}
</style>
\ No newline at end of file
<template>
<view class="hapPasDetBox column" style="width:100vw;height:100vh;background: #F3F1EF;">
<view class="hapPasDetTitle">幸福存折{{PassbookAata.type==1?'收入':'支出'}}</view>
<view class="hapPasDetNum">{{PassbookAata.type==1?'+':'-'}}{{ PassbookAata.money }}</view>
<view class="hapPasDetBox">
<view class="hapPasDetImg row" @click="goProduct">
<image mode="aspectFit" :src="PassbookAata.imgCover" />
<view class="col">{{ PassbookAata.lineName }}</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">订单号</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.orderId }}</text>
<text class="hapPasDetRCop" @click="handleCopy(PassbookAata.orderId)">复制</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">{{PassbookAata.type==1?'收入':'支出'}}日期</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.updateTime }}</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">团号</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.tcnum }}</text>
<text class="hapPasDetRCop" @click="handleCopy(PassbookAata.tcnum)">复制</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">出团日期</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.tcStartDate }}</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">订单人数</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC active">{{ PassbookAata.peopleNum }}</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
scrollTop: 0,
b2b_user_info: {},
mall_UserInfo: {},
PassbookAata:{},
};
},
onLoad(option) {
if(option.data){
this.PassbookAata = decodeURIComponent(option.data)
}
this.b2b_user_info = uni.getStorageSync('b2b_user');
this.mall_UserInfo = uni.getStorageSync("mall_UserInfo");
this.showAuth = !this.mall_UserInfo || !this.b2b_user_info;
},
onShow() {
uni.setNavigationBarTitle({
title: ""
})
},
methods: {
async handleCopy(text){
try {
await uni.copyText(text);
uni.showToast({
title: '复制成功',
icon: 'success',
});
} catch (err) {
uni.showToast({
title: '复制失败',
icon: 'none',
duration: 1500
});
}
},
goProduct(){
return
uni.navigateTo({
url: "/pages/product/productDetails/productDetails?id="+this.PassbookAata.orderId
})
}
}
};
</script>
<style scoped>
@import url('../../asset/css/flex.css');
.hapPasDetTitle{
font-weight: bold;
font-size: 32rpx;
color: #080A0A;
line-height: 70rpx;
text-align: center;
padding: 39rpx 0 40rpx 0;
}
.hapPasDetNum{
font-weight: bold;
font-size: 52rpx;
color: #B99846;
line-height: 70rpx;
text-align: center;
margin-bottom: 48rpx;
}
.hapPasDetBox{
background: #FFFFFF;
border-radius: 18rpx 18rpx 18rpx 18rpx;
padding: 40rpx;
}
.hapPasDetImg{
margin-bottom: 50rpx;
}
.hapPasDetImg image{
width: 141rpx;
height: 141rpx;
border-radius: 14rpx 14rpx 14rpx 14rpx;
border: 1rpx solid #000000;
display: inline-block;
}
.hapPasDetImg view{
margin-left: 30rpx;
font-weight: bold;
font-size: 28rpx;
color: #080A0A;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
}
.hapPasDetText{
padding: 0 0 10rpx 0;
}
.hapPasDetL{
width: 180rpx;
font-weight: 500;
font-size: 28rpx;
color: #757776;
line-height: 70rpx;
}
.hapPasDetR{
font-size: 28rpx;
line-height: 70rpx;
}
.hapPasDetRC{
font-weight: bold;
color: #080A09;
}
.hapPasDetRC.active{
color: #FF3166;
}
.hapPasDetRCop{
line-height: 35rpx;
background: #E9E4E0;
border-radius: 15rpx 15rpx 15rpx 15rpx;
color: #000000;
font-weight: 500;
display: inline-block;
padding: 0 10rpx;
margin-left: 30rpx;
}
</style>
\ No newline at end of file
<template>
<view style="width:100vw;height:100vh;" class="column">
<scroll-view :scroll-y="true" @scroll="scrollHandler" @scrolltoupper="scrollTopHandler" class="col" style="height: 1px;width: 100%;">
<view style="width:100vw;height: 100vh;" class="column">
<scroll-view scroll-y="true"
@scroll="scroll"
:scroll-top="scrollTop"
class="col" style="width: 100%;height: 1px; flex: 1;">
<view class="userStyle">
<view class="headStatus" v-if="scrollTop > 50" :style="{
<view class="headStatus" v-if="scrollTop > 50" :style="[titleStyle,{
zIndex: scrollTop < 10 ? 'unset' : 2,
opacity: scrollTop < 10 ? '100' : scrollTop,
}">
<view class="title">{{ pageTitle }}</view>
}]">
<view class="title" style="position: relative;">
<u-icon name="arrow-left" size="38" color="#000"
style="position: absolute;left: 32rpx;top:20rpx"></u-icon>
{{ pageTitle }}
</view>
</view>
<view class="userBox" style="height:100vh">
<happasHeader :user_info="user_info" :b2b_user_info="b2b_user_info" @login="openAuth"></happasHeader>
<view style="padding: 0 32rpx;width: 100vw;height: 1px;flex: 1;">
<view class="userBox">
<view class="userHeaderBox" :style="[titleStyle]">
<view class="titlenav">
<view class="carrHeader-left-icon" @click="goBack">
<u-icon name="arrow-left" size="38" color="#000"></u-icon>
</view>
{{ pageTitle }}
</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar v-if="b2b_user_info.photo||CustomerBalance.image" :src="b2b_user_info.photo?b2b_user_info.photo:CustomerBalance.image" size="99" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" size="99" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image> -->
</view>
<view class="col column">
<text v-if="b2b_user_info&&b2b_user_info.name"
class="userHeadPicR_title" @click="navigatorToProfile">
{{ b2b_user_info.name }}
</text>
<text v-else-if="mall_UserInfo&&mall_UserInfo.Name"
class="userHeadPicR_title">
{{mall_UserInfo.Name}}
</text>
<!-- v-if="CustomerBalance&&CustomerBalance.saleList&&CustomerBalance.saleList.length>0" -->
<text class="userHeadPicR_text" @click="goTisp">
幸福存折规则
<!-- #ifdef MP-DI -->
<!-- 销售:{{ b2b_user_info.salesBaseInfo.emName }} -->
<!-- #endif -->
<!-- #ifdef MP-AG -->
<!-- 销售:{{ CustomerBalance.saleList[0].saleName }}<template v-if="CustomerBalance.saleList.length>0">{{CustomerBalance.saleList.length}}</template> -->
<!-- #endif -->
</text>
</view>
</view>
<view class="userHeadPasBox">
<view class="userHeadPNumBox row-sb-n">
<view class="userHeadPNum">
<view class="userHeadPNumT">当前余额</view>
<view class="userHeadPNumB">
<text></text>
{{ CustomerBalance.balance>=0?CustomerBalance.balance:0 }}
</view>
</view>
<view class="userHeadPNum active">
<view class="userHeadPNumT">待结算</view>
<view class="userHeadPNumB">
<text></text>
{{ CustomerBalance.waitBalance>=0?CustomerBalance.waitBalance:0 }}
</view>
</view>
</view>
<view class="userHeadPNumS row-sb-n">
<view class="userHeadPNumSL">累计已省</view>
<view class="userHeadPNumSR">
<text>{{ CustomerBalance.useBalance>=0?CustomerBalance.useBalance:0 }}</text>
</view>
</view>
</view>
</view>
<view class="listBox"
:class="[showTisp?'active':'']" style="padding: 0 32rpx;width: 100vw;">
<view class="userMyOrderBox column">
<view class="row-sb-n" style="padding: 20rpx 0;">
<view>明细</view>
<view class="row">
<text>2025年</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
</view>
<view class="row">
<text>3月</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
</view>
<view style="padding: 20rpx 0;">
<view class="userMyOrderState row-sb-n">
<view v-for="(item,index) in stateList" :key="index"
:class="[msg.Type==item.ID?'active':'']"
@click="research(item.ID)">
{{ item.Name }}
</view>
</view>
<view class="row">
<view class="row" @click="SelectDate">
<text>{{year}}年</text>
<text>{{month}}月</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
</view>
</view>
</view>
<scroll-view :scroll-y="true" class="col" style="height: 1px;flex: 1; width: 100%;">
<view class="userHeadPListBox">
<view class="userHeadPList row" v-for="(item,index) in 10">
<scroll-view :scroll-y="true" class="col"
@scrolltolower="lower"
style="height: 1px;flex: 1; width: 100%;">
<view class="userHeadPListBox" v-if="dataList&&dataList.length>0">
<view class="userHeadPList row"
v-for="(item,index) in dataList" :key="index"
@click="goDetails(item)">
<view class="userHeadPListL">
<image mode="scaleToFill" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774847991690497.png"/>
<text>4件</text>
<image mode="aspectFit" :src="item.imgCover"/>
<text>{{item.peopleNum}}人</text>
</view>
<view class="userHeadPListA col column">
<view class="userHeadPListATitel">幸福存折返佣</view>
<view class="userHeadPListATime">2025-02-08 15:27</view>
<view class="userHeadPListATitel">幸福存折{{ item.type==1?'收入':'支出' }}</view>
<view class="userHeadPListATime">
{{ item.updateTime }}
</view>
</view>
<view class="userHeadPListR">
+¥30
{{item.type==1?'+':'-'}}¥{{ item.money }}
</view>
</view>
</view>
<u-empty v-if="dataList.length == 0 && !loading" text="暂无数据" mode="data" :padding-top="!showTisp?10:30"></u-empty>
<u-loadmore v-else :status="status" :load-text="loadText" :font-size="24" :margin-top="20" :margin-bottom="20" bg-color="#fff" />
</scroll-view>
</view>
</view>
<u-alert-tips v-if="showTisp" :show="showTisp" :close-able="true" @close="showTisp=false"
style="padding: 30rpx 30rpx;"
type="warning"
title="2025年2月1日(包含)起生效"
description="幸福存折:平台所有散拼报名跟团游产品均可参加幸福存折活动,欧洲线路为 80元/人,其他线路为 30元/人,婴儿不参加幸福存折活动。团队出团后7个工作日内将会存入幸福存折余额。"
></u-alert-tips>
</view>
</view>
</scroll-view>
<u-picker mode="time" v-model="showTime" :defaultTime="times" :params="params" @confirm = 'confirm'></u-picker>
</view>
</template>
<script>
import happasHeader from "./components/happasHeader.vue";
export default {
components: {
happasHeader,
},
data() {
return {
......@@ -62,10 +148,43 @@
showAuth: false,
b2b_user_info: {},
mall_UserInfo: {},
u: {},
user_info: {},
shopBasics: {},
PointNum: 0,
stateList:[
{Name:'全部',ID:0},
{Name:'收入',ID:1},
{Name:'支付',ID:2},
],
msg:{
pageIndex:1,//是 [string]
pageSize:10,//是 [string]
BalanceState:0,// 状态 1查询已反记录 2查询待结算记录
Type:0,// 类型 1存入 2扣除
StartTime:'',// 开始时间
EndTime:'',
},
dataList: [],
status: "加载中",
page_count: 0,
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
loading: false,
showTime: false,
params: {
year: true,
month: true,
day: false,
hour: false,
minute: false,
second: false
},
year: '',
month: '',
times: '',
CustomerBalance:{},
titleStyle:{},
showTisp: false
};
},
onLoad() {
......@@ -74,115 +193,114 @@
this.showAuth = !this.mall_UserInfo || !this.b2b_user_info;
},
onShow() {
this.userCenterinfo(2);
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
const now = new Date();
this.year = now.getFullYear();
this.month = String(now.getMonth() + 1).padStart(2, '0');
this.msg.StartTime = this.year + '-' + this.month + '-01'
now.setMonth(now.getMonth() + 1, 0);
this.msg.EndTime = this.year + '-' + this.month + '-'+now.getDate()
this.times = this.year + '-' + this.month
this.getList();
this.GetCustomerBalance()
},
methods: {
goTisp(){
this.showTisp = true
this.scrollTop = 500
},
confirm(e){
if(this.year==e.year&&this.month==e.month) return
this.year = e.year
this.month = e.month
this.times = this.year + '-' + this.month
const now = new Date(this.year, this.month, 1); // 设置为下个月第1天
now.setDate(now.getDate() - 1); // 减1天即为上个月最后一天
this.msg.StartTime = this.year + '-' + this.month + '-01'
this.msg.EndTime = this.year + '-' + this.month + '-'+now.getDate()
this.research()
},
SelectDate(){
this.showTime = true
},
goDetails(item) {
return
let url = null
let msg = null
// #ifdef MP-DI
msg = `OrderNo=${item.orderNo}`
if(item.goodsType>0&&item.goodsType<4) url = `jiuzhai/jz_SureOrder?` //线路
else if(item.goodsType>3&&item.goodsType<8){//景点门票
}else if(item.goodsType>7&&item.goodsType<12){//酒店住宿
}else if(item.goodsType>11&&item.goodsType<15){//目的地用车
}else if(item.goodsType==15) url = `visa/visa_SureOrder?`//签证
else if(item.goodsType==16)url = `airTicket/airTicketOrderDetail?`//机票
// #endif
// #ifdef MP-AG
msg = `orderId=${item.erpOrderId}`
if(item.goodsType==2) url = `jiuzhai/jz_SureOrder?`//线路
else if(item.goodsType==4){//景点门票
}else if(item.goodsType==3){//酒店住宿
}else if(item.goodsType==5){//目的地用车
}else if(item.goodsType==6) url = `visa/visa_SureOrder?`//签证
else if(item.goodsType==1){//机票
url = `airTicket/airTicketOrderDetail?`
msg = `id=${item.erpOrderId}`
}
// #endif
if(url) {
let path = `/pages/${url}${msg}`
let path = `/pages/user-center/happinessPasDetails?data=`+encodeURIComponent(item)
uni.navigateTo({
url: path,
});
}
},
openAuth() {
this.showAuth = true;
},
//关闭登录窗口
gbAuth() {
this.showAuth = false;
},
scrollHandler(e) {
scroll(e) {
this.scrollTop = e.detail.scrollTop;
},
scrollTopHandler() {
this.scrollTop = 0;
},
goUrl(url) {
uni.navigateTo({ url });
},
//获取菜单配置
userCenterinfo(type = 1) {
uni.showNavigationBarLoading();
this.request2({
url: "/api/Mall/GetUserCenter",
data: {},
},
(res) => {
uni.hideNavigationBarLoading();
this.user_info = res.data.user_info;
if (this.mall_UserInfo && type == 1) {
// this.getLogin()
}
}
);
let u = uni.getStorageSync("mall_UserInfo");
if (u && type == 1) {
this.getMicroShopBasics();
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.getList();
} else {
this.status = "nomore";
}
},
getMicroShopBasics() {
this.request2({
url: "/api/AppletUser/GetMicroShopBasics",
data: {},
},
research(ID) {
if(ID==this.msg.Type) return
if(ID>=0) this.msg.Type = ID
this.msg.pageIndex = 1
this.dataList = []
this.getList()
},
getList() {
this.loading = true
uni.showLoading({
title: '加载中',
icon: 'none'
})
this.apipost('b2b_get_GetCustomerBalancePageList',this.msg,
(res) => {
this.shopBasics = res.data;
this.loading = false
uni.hideLoading();
this.dataList = this.dataList.concat(res.data.pageData)
this.page_count = res.data.pageCount;
},(err)=>{
this.loading = false
uni.hideLoading();
}
)
},
reloadUserinfo() {
this.b2b_user_info = uni.getStorageSync('b2b_user');
this.userCenterinfo();
this.u = this.user_info;
this.mall_UserInfo = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo") : {};
this.getUserPoint();
);
},
getUserPoint() {
this.request2({
url: "/api/AppletPoint/GetAppletUserPointDetailPageList",
data: {
pageIndex: 1,
pageSize: 10,
Type: 0
},
},
GetCustomerBalance() {
this.apipost("b2b_get_GetCustomerBalanceDetail",{},
(res) => {
this.PointNum = res.data.pageData.PointNum;
this.CustomerBalance = res.data
}
);
},
goBack(){
uni.navigateBack({delta:-1})
}
}
};
</script>
<style>
<style scoped>
@import url('../../asset/css/flex.css');
.listBox{
height: 1px;
flex: 1;
}
.listBox.active{
min-height: 936rpx;
}
.row-sbas-n {
justify-content: space-between;
}
......@@ -194,9 +312,11 @@
display: flex;
flex-direction: column;
align-items: center;
background: #f3f4f6;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774883791846536.png')no-repeat ;
background-size: 100% auto;
background-color: #F3F2EF;
min-height: 100vh;
padding-bottom: env(safe-area-inset-bottom);
// padding-bottom: env(safe-area-inset-bottom);
}
.order_bar_list {
......@@ -240,12 +360,13 @@
right: 0;
top: 0;
display: flex;
background-image: linear-gradient(to right, #e6b865, #ebb45e);
background: #F6E4BC;
}
.headStatus .title {
font-size: 18px;
color: #fff;
font-size: 32rpx;
overflow: hidden;
color: #000;
flex: 1;
width: 1px;
line-height: 34px;
......@@ -368,4 +489,208 @@
font-size: 28rpx;
color: #B99846;
}
.userMyOrderState{
margin-bottom: 40rpx;
}
.userMyOrderState view{
flex: 1;
margin-left: 20rpx;
background: #F3F2EF;
color: #757776;
font-size: 29rpx;
text-align: center;
line-height: 80rpx;
border-radius: 14rpx;
}
.userMyOrderState view:first-child{
margin-left: 0;
}
.userMyOrderState view.active{
background: #000;
color: #fff;
}
.userHeaderBox{
width: 750rpx;
}
.titlenav {
width: 100%;
text-align: center;
font-size: 16px;
color: #000;
position: relative;
padding: 15rpx 0;
}
.carrHeader-left-icon{
position: absolute;
left: 32rpx;
top: 20rpx;
z-index: 2;
}
.userHeadPic{
padding: 29rpx 20rpx 25rpx 62rpx;
}
.userHeadPicL{
width: 97rpx;
height: 97rpx;
overflow: hidden;
border-radius: 50%;
margin-right: 27rpx;
}
.userHeadPicL image{
width: 97rpx;
height: 97rpx;
display: block;
}
.userHeadPicR_title{
font-family: PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #080A09;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.userHeadPicR_text{
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #61462E;
margin-top: 16rpx;
letter-spacing: 1rpx;
}
.jz_LineDetaVipPr{
margin-top: 28rpx;
position: relative;
left: -20rpx;
}
.jz_LineDetaVip{
width: 100%;
height: 120rpx;
background: linear-gradient(90deg, #3F423F, #313131);
border-radius: 18rpx;
display: flex;
flex-direction: column;
padding: 15rpx 0 6rpx 0;
margin-top: 18rpx;
margin-bottom: 18rpx;
}
.jz_LineDetaVipTop{
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #E2C27A;
letter-spacing: .1rpx;
display: flex;
align-content: center;
padding: 0 34rpx;
}
.jz_LineDetaVipTop img{
width: 21rpx;
height: 21rpx;
display: inline-block;
margin-left: 5rpx;
}
.jz_LineDetaVPB{
display: flex;
}
.jz_LineDetaVPBBox{
display: flex;
align-items: center;
width: 1px;
flex: 1;
}
.jz_LineDetaVPBN{
width: 30rpx;
height: 30rpx;
background: #2E2E2E;
border-radius: 50%;
text-align: center;
line-height: 28rpx;
font-family: DIN Black;
font-weight: bold;
font-size: 24rpx;
color: #494949;;
}
.jz_LineDetaVPBLine{
flex: 1;
height: 10rpx;
background: #000;
}
.jz_LineDetaVPBBoxI{
position: relative;
flex: 1;
}
.jz_LineDetaVPBBoxI img{
width: 87rpx;
height: 99rpx;
position: absolute;
bottom: -35rpx;
right: 8rpx;
z-index: 2;
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBN{
background: linear-gradient(270deg, #C99E59, #FFFFB3);
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBLine{
background: #C99E59;
color: #583F2C;
}
.VPBLRadiusL{
border-radius: 20rpx 0 0 20rpx ;
}
.VPBLRadiusR{
border-radius: 0 20rpx 20rpx 0;
}
.jz_LineDetaVPBY{
position: absolute;
left: -29rpx;
right: 0;
top: 0;
}
.userHeadPasBox{
padding: 0 30rpx;
}
.userHeadPNum{
width: 330rpx;
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 20rpx 40rpx 50rpx;
}
.userHeadPNumT{
font-weight: 500;
font-size: 28rpx;
color: #4F360D;
margin-bottom: 21rpx;
}
.userHeadPNumB{
color: #FF3166 ;
font-size: 48rpx;
font-weight: bold;
}
.userHeadPNumB text{
font-size: 29rpx;
}
.userHeadPNum.active .userHeadPNumB{
color: #4F360D;
}
.userHeadPNumS{
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 40rpx 40rpx 50rpx;
margin-top: 30rpx;
margin-bottom: 40rpx;
}
.userHeadPNumSL{
font-size: 29rpx;
color: #4F360D;
}
.userHeadPNumSR{
color: #4F360D ;
font-size: 29rpx;
font-weight: bold;
}
.userHeadPNumSR text{
font-size: 48rpx;
}
</style>
\ No newline at end of file
<template>
<view style="width:100vw;height:100vh;" class="column">
<scroll-view :scroll-y="true"
@scroll="scroll"
:scroll-top="scrollTop"
class="col" style="width: 100%;height: 1px; flex: 1;">
<view class="userStyle">
<view class="headStatus" v-if="scrollTop > 50" :style="[titleStyle,{
zIndex: scrollTop < 10 ? 'unset' : 2,
opacity: scrollTop < 10 ? '100' : scrollTop,
}]">
<view class="title" style="position: relative;">
<u-icon name="arrow-left" size="38" color="#000"
style="position: absolute;left: 32rpx;top:20rpx"></u-icon>
{{ pageTitle }}
</view>
</view>
<view class="userBox">
<view class="userHeaderBox" :style="[titleStyle]">
<view class="titlenav">
<view class="carrHeader-left-icon" @click="goBack">
<u-icon name="arrow-left" size="38" color="#000"></u-icon>
</view>
{{ pageTitle }}
</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<u-avatar v-if="b2b_user_info.photo||CustomerIntegral.image" :src="b2b_user_info.photo?b2b_user_info.photo:CustomerIntegral.image" size="99" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" size="99" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image> -->
</view>
<view class="col column">
<text v-if="b2b_user_info&&b2b_user_info.name"
class="userHeadPicR_title" @click="navigatorToProfile">
{{ b2b_user_info.name }}
</text>
<text v-else-if="mall_UserInfo&&mall_UserInfo.Name"
class="userHeadPicR_title">
{{mall_UserInfo.Name}}
</text>
<!-- v-if="CustomerIntegral&&CustomerIntegral.saleList&&CustomerIntegral.saleList.length>0" -->
<text class="userHeadPicR_text" @click="goTisp">
积分规则
<!-- #ifdef MP-DI -->
<!-- 销售:{{ b2b_user_info.salesBaseInfo.emName }} -->
<!-- #endif -->
<!-- #ifdef MP-AG -->
<!-- 销售:{{ CustomerIntegral.saleList[0].saleName }}<template v-if="CustomerIntegral.saleList.length>0">{{CustomerIntegral.saleList.length}}</template> -->
<!-- #endif -->
</text>
</view>
</view>
<view class="userHeadPasBox">
<view class="userHeadPNumBox row-sb-n">
<view class="userHeadPNum">
<view class="userHeadPNumT">当前积分</view>
<view class="userHeadPNumB">
<text></text>
{{ CustomerIntegral.integral>=0?CustomerIntegral.integral:0 }}
</view>
</view>
<view class="userHeadPNum active">
<view class="userHeadPNumT">待获取</view>
<view class="userHeadPNumB">
<text></text>
{{ CustomerIntegral.waitIntegral>=0?CustomerIntegral.waitIntegral:0 }}
</view>
</view>
</view>
<view class="userHeadPNumS row-sb-n">
<view class="userHeadPNumSL">已消耗</view>
<view class="userHeadPNumSR">
<text>{{ CustomerIntegral.useIntegral>=0?CustomerIntegral.useIntegral:0 }}</text>
</view>
</view>
</view>
</view>
<view class="listBox"
:class="[showTisp?'active':'']"
style="padding: 0 32rpx;width: 100vw;">
<view class="userMyOrderBox column">
<view style="padding: 20rpx 0;">
<view class="userMyOrderState row-sb-n">
<view v-for="(item,index) in stateList" :key="index"
:class="[msg.Type==item.ID?'active':'']"
@click="research(item.ID)">
{{ item.Name }}
</view>
</view>
<view class="row">
<view class="row" @click="SelectDate">
<text>{{year}}年</text>
<text>{{month}}月</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
</view>
</view>
</view>
<scroll-view :scroll-y="true" class="col"
@scrolltolower="lower"
style="height: 1px;flex: 1; width: 100%;">
<view class="userHeadPListBox" v-if="dataList&&dataList.length>0">
<view class="userHeadPList row"
v-for="(item,index) in dataList" :key="index"
@click="goDetails(item)">
<view class="userHeadPListL">
<image mode="aspectFit" :src="item.imgCover"/>
<text>共{{item.peopleNum}}人</text>
</view>
<view class="userHeadPListA col column">
<view class="userHeadPListATitel">积分{{ item.type==1?'收获':'消耗' }}</view>
<view class="userHeadPListATime">
{{ item.updateTime }}
</view>
</view>
<view class="userHeadPListR">
{{item.type==1?'+':'-'}}¥{{ item.integralNum }}
</view>
</view>
</view>
<u-empty v-if="dataList.length == 0 && !loading" text="暂无数据" mode="data" :padding-top="!showTisp?10:30"></u-empty>
<u-loadmore v-else :status="status" :load-text="loadText" :font-size="24" :margin-top="20" :margin-bottom="20" bg-color="#fff" />
</scroll-view>
</view>
</view>
<u-alert-tips v-if="showTisp" :show="showTisp" :close-able="true" @close="showTisp=false"
style="padding: 30rpx 30rpx;"
type="warning"
title="2025年2月1日(包含)起生效"
description="积分:平台所有跟团游产品均可参加积分活动,积分获得比例:100:1(例:客人实付金额100元,获得1个积分)。团队出发后7个工作日内将会存入积分余额。"
></u-alert-tips>
</view>
</view>
</scroll-view>
<u-picker mode="time" v-model="showTime" :defaultTime="times" :params="params" @confirm = 'confirm'></u-picker>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
pageTitle: "积分",
scrollTop: 0,
showAuth: false,
b2b_user_info: {},
mall_UserInfo: {},
stateList:[
{Name:'全部',ID:0},
{Name:'已获取',ID:1},
{Name:'已消耗',ID:2},
],
msg:{
pageIndex:1,//是 [string]
pageSize:10,//是 [string]
IntegralState:0,
Type:0,// 类型 1存入 2扣除
QStartDate:'',// 开始时间
QEndDate:'',
},
dataList: [],
status: "加载中",
page_count: 0,
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
loading: false,
showTime: false,
params: {
year: true,
month: true,
day: false,
hour: false,
minute: false,
second: false
},
year: '',
month: '',
times: '',
CustomerIntegral:{},
titleStyle:{},
showTisp: false,
};
},
onLoad() {
this.b2b_user_info = uni.getStorageSync('b2b_user');
this.mall_UserInfo = uni.getStorageSync("mall_UserInfo");
this.showAuth = !this.mall_UserInfo || !this.b2b_user_info;
},
onShow() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
const now = new Date();
this.year = now.getFullYear();
this.month = String(now.getMonth() + 1).padStart(2, '0');
this.msg.QStartDate = this.year + '-' + this.month + '-01'
now.setMonth(now.getMonth() + 1, 0);
this.msg.QEndDate = this.year + '-' + this.month + '-'+now.getDate()
this.times = this.year + '-' + this.month
this.getList();
this.GetCustomerIntegral()
},
methods: {
goTisp(){
this.showTisp = true
this.scrollTop = 500
},
confirm(e){
if(this.year==e.year&&this.month==e.month) return
this.year = e.year
this.month = e.month
this.times = this.year + '-' + this.month
const now = new Date(this.year, this.month, 1); // 设置为下个月第1天
now.setDate(now.getDate() - 1); // 减1天即为上个月最后一天
this.msg.QStartDate = this.year + '-' + this.month + '-01'
this.msg.QEndDate = this.year + '-' + this.month + '-'+now.getDate()
this.research()
},
SelectDate(){
this.showTime = true
},
goDetails(item) {
if(url) {
let path = `/pages/user-center/pointsDetails?data=${encodeURIComponent(item)}`
uni.navigateTo({
url: path,
});
}
},
scroll(e) {
this.scrollTop = e.detail.scrollTop;
},
goUrl(url) {
uni.navigateTo({ url });
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.getList();
} else {
this.status = "nomore";
}
},
research(ID) {
if(ID==this.msg.Type) return
if(ID>=0) this.msg.Type = ID
this.msg.pageIndex = 1
this.dataList = []
this.getList()
},
getList() {
this.loading = true
uni.showLoading({
title: '加载中',
icon: 'none'
})
this.apipost('b2b_get_GetCustomerIntegralPageList',this.msg,
(res) => {
this.loading = false
uni.hideLoading();
this.dataList = this.dataList.concat(res.data.pageData)
this.page_count = res.data.pageCount;
},(err)=>{
this.loading = false
uni.hideLoading();
}
);
},
GetCustomerIntegral() {
this.apipost("b2b_get_GetCustomerIntegralDetail",{},
(res) => {
this.CustomerIntegral = res.data
}
);
},
goBack(){
uni.navigateBack({delta:-1})
}
}
};
</script>
<style scoped>
@import url('../../asset/css/flex.css');
.listBox{
height: 1px;
flex: 1;
}
.listBox.active{
min-height: 936rpx;
}
.row-sbas-n {
justify-content: space-between;
}
.relative {
position: relative;
}
.userStyle .userBox {
display: flex;
flex-direction: column;
align-items: center;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638778933736114322.png')no-repeat ;
background-size: 100% auto;
background-color: #F3F2EF;
min-height: 100vh;
// padding-bottom: env(safe-area-inset-bottom);
}
.order_bar_list {
padding: 22rpx 55rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.order_bar_item {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20rpx;
position: relative;
}
.badge {
position: absolute;
right: -10rpx;
top: -10rpx;
padding: 0 8rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 20rpx;
background: #FF3166;
color: #fff;
min-width: 28rpx;
height: 28rpx;
border-radius: 14rpx;
}
.headStatus {
position: fixed;
width: 140vw;
padding-right: 40vw;
padding-bottom: 10px;
left: 0;
right: 0;
top: 0;
display: flex;
background: #CFE2A0;
}
.headStatus .title {
font-size: 32rpx;
color: #000;
flex: 1;
width: 1px;
line-height: 34px;
text-align: center;
}
.userMyOrder {
background: #FFF;
border-radius: 20rpx;
padding: 33rpx 0 22rpx 0;
}
.userMyOrderTitle {
padding: 23rpx 31rpx 0 31rpx;
}
.userMyOrderTitL {
font-family: PingFang SC;
font-weight: 800;
font-size: 32rpx;
color: #080A09;
}
.userMyOrderTitR {
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #B2B3B3;
align-items: center;
}
.userMyOrderTitRIght {
margin-left: 11rpx;
transform: rotate(90deg);
}
.orderProductBox {
padding: 0 20rpx;
}
.orderProduct {
width: 648rpx;
height: 132rpx;
background: #F7F7F7;
border-radius: 18rpx;
padding: 21rpx 20rpx;
}
.orderProductL {
width: 91rpx;
height: 88rpx;
border-radius: 14rpx;
overflow: hidden;
margin-right: 18rpx;
}
.orderProductR_state {
font-family: PingFang SC;
font-weight: 500;
font-size: 28rpx;
color: #080A09;
padding-top: 5rpx;
}
.orderProductR_text {
width: 100%;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #8C8C8C;
padding-top: 4rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.userMyOrderBox{
background: #FFFFFF;
height: 100%;
overflow: hidden;
border-radius: 20rpx;
padding: 25rpx 34rpx 45rpx 34rpx;
}
.userHeadPList{
padding: 20rpx 0;
}
.userHeadPListL{
width: 91rpx;
height: 88rpx;
border-radius: 14rpx;
overflow: hidden;
position: relative;
}
.userHeadPListL image{
width: 91rpx;
height: 88rpx;
display: block;
}
.userHeadPListL text{
position: absolute;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
background: rgb(178, 179, 179,.8);
border-radius: 0rpx 0rpx 14rpx 14rpx;
color: #fff;
font-size: 20rpx;
padding: 5rpx 0;
text-align: center;
}
.userHeadPListA{
margin-left: 29rpx;
margin-right: 20rpx;
}
.userHeadPListATitel{
font-weight: bold;
font-size: 28rpx;
color: #080A09;
margin-top: 5rpx;
}
.userHeadPListATime{
font-weight: 500;
font-size: 24rpx;
color: #8C8C8C;
margin-top: 18rpx;
}
.userHeadPListR{
font-weight: bold;
font-size: 28rpx;
color: #B99846;
}
.userMyOrderState{
margin-bottom: 40rpx;
}
.userMyOrderState view{
flex: 1;
margin-left: 20rpx;
background: #F3F2EF;
color: #757776;
font-size: 29rpx;
text-align: center;
line-height: 80rpx;
border-radius: 14rpx;
}
.userMyOrderState view:first-child{
margin-left: 0;
}
.userMyOrderState view.active{
background: #000;
color: #fff;
}
.userHeaderBox{
width: 750rpx;
}
.titlenav {
width: 100%;
text-align: center;
font-size: 16px;
color: #000;
position: relative;
padding: 15rpx 0;
}
.carrHeader-left-icon{
position: absolute;
left: 32rpx;
top: 20rpx;
z-index: 2;
}
.userHeadPic{
padding: 29rpx 20rpx 25rpx 62rpx;
}
.userHeadPicL{
width: 97rpx;
height: 97rpx;
overflow: hidden;
border-radius: 50%;
margin-right: 27rpx;
}
.userHeadPicL image{
width: 97rpx;
height: 97rpx;
display: block;
}
.userHeadPicR_title{
font-family: PingFang SC;
font-weight: bold;
font-size: 36rpx;
color: #080A09;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.userHeadPicR_text{
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
color: #61462E;
margin-top: 16rpx;
letter-spacing: 1rpx;
}
.jz_LineDetaVipPr{
margin-top: 28rpx;
position: relative;
left: -20rpx;
}
.jz_LineDetaVip{
width: 100%;
height: 120rpx;
background: linear-gradient(90deg, #3F423F, #313131);
border-radius: 18rpx;
display: flex;
flex-direction: column;
padding: 15rpx 0 6rpx 0;
margin-top: 18rpx;
margin-bottom: 18rpx;
}
.jz_LineDetaVipTop{
font-family: PingFang SC;
font-weight: 400;
font-size: 24rpx;
color: #E2C27A;
letter-spacing: .1rpx;
display: flex;
align-content: center;
padding: 0 34rpx;
}
.jz_LineDetaVipTop img{
width: 21rpx;
height: 21rpx;
display: inline-block;
margin-left: 5rpx;
}
.jz_LineDetaVPB{
display: flex;
}
.jz_LineDetaVPBBox{
display: flex;
align-items: center;
width: 1px;
flex: 1;
}
.jz_LineDetaVPBN{
width: 30rpx;
height: 30rpx;
background: #2E2E2E;
border-radius: 50%;
text-align: center;
line-height: 28rpx;
font-family: DIN Black;
font-weight: bold;
font-size: 24rpx;
color: #494949;;
}
.jz_LineDetaVPBLine{
flex: 1;
height: 10rpx;
background: #000;
}
.jz_LineDetaVPBBoxI{
position: relative;
flex: 1;
}
.jz_LineDetaVPBBoxI img{
width: 87rpx;
height: 99rpx;
position: absolute;
bottom: -35rpx;
right: 8rpx;
z-index: 2;
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBN{
background: linear-gradient(270deg, #C99E59, #FFFFB3);
}
.jz_LineDetaVPBBox.active .jz_LineDetaVPBLine{
background: #C99E59;
color: #583F2C;
}
.VPBLRadiusL{
border-radius: 20rpx 0 0 20rpx ;
}
.VPBLRadiusR{
border-radius: 0 20rpx 20rpx 0;
}
.jz_LineDetaVPBY{
position: absolute;
left: -29rpx;
right: 0;
top: 0;
}
.userHeadPasBox{
padding: 0 30rpx;
}
.userHeadPNum{
width: 330rpx;
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 20rpx 40rpx 50rpx;
}
.userHeadPNumT{
font-weight: 500;
font-size: 28rpx;
color: #4F360D;
margin-bottom: 21rpx;
}
.userHeadPNumB{
color: #FF3166 ;
font-size: 48rpx;
font-weight: bold;
}
.userHeadPNumB text{
font-size: 29rpx;
}
.userHeadPNum.active .userHeadPNumB{
color: #4F360D;
}
.userHeadPNumS{
border-radius: 18rpx;
background: rgba(255, 255, 255,.2);
padding: 30rpx 40rpx 40rpx 50rpx;
margin-top: 30rpx;
margin-bottom: 40rpx;
}
.userHeadPNumSL{
font-size: 29rpx;
color: #4F360D;
}
.userHeadPNumSR{
color: #4F360D ;
font-size: 29rpx;
font-weight: bold;
}
.userHeadPNumSR text{
font-size: 48rpx;
}
</style>
\ No newline at end of file
<template>
<view class="hapPasDetBox column" style="width:100vw;height:100vh;background: #F3F1EF;">
<view class="hapPasDetTitle">积分{{PassbookAata.type==1?'收获':'消耗'}}</view>
<view class="hapPasDetNum">{{PassbookAata.type==1?'+':'-'}}{{ PassbookAata.integralNum }}</view>
<view class="hapPasDetBox">
<view class="hapPasDetImg row" @click="goProduct">
<image mode="aspectFit" :src="PassbookAata.imgCover" />
<view class="col">{{ PassbookAata.lineName }}</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">订单号</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.orderId }}</text>
<text class="hapPasDetRCop" @click="handleCopy(PassbookAata.orderId)">复制</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">{{PassbookAata.type==1?'收获':'消耗'}}日期</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.updateTime }}</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">团号</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.tcnum }}</text>
<text class="hapPasDetRCop" @click="handleCopy(PassbookAata.tcnum)">复制</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">出团日期</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC">{{ PassbookAata.tcStartDate }}</text>
</view>
</view>
<view class="row hapPasDetText">
<text class="hapPasDetL">订单人数</text>
<view class="hapPasDetR col">
<text class="hapPasDetRC active">{{ PassbookAata.peopleNum }}</text>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
components: {
},
data() {
return {
scrollTop: 0,
PassbookAata:{},
};
},
onLoad(option) {
if(option.data){
this.PassbookAata = decodeURIComponent(option.data)
}
},
onShow() {
uni.setNavigationBarTitle({
title: ""
})
},
methods: {
async handleCopy(text){
try {
await uni.copyText(text);
uni.showToast({
title: '复制成功',
icon: 'success',
});
} catch (err) {
uni.showToast({
title: '复制失败',
icon: 'none',
duration: 1500
});
}
},
goProduct(){
return
uni.navigateTo({
url: "/pages/product/productDetails/productDetails?id="+this.PassbookAata.orderId
})
}
}
};
</script>
<style scoped>
@import url('../../asset/css/flex.css');
.hapPasDetTitle{
font-weight: bold;
font-size: 32rpx;
color: #080A0A;
line-height: 70rpx;
text-align: center;
padding: 39rpx 0 40rpx 0;
}
.hapPasDetNum{
font-weight: bold;
font-size: 52rpx;
color: #B99846;
line-height: 70rpx;
text-align: center;
margin-bottom: 48rpx;
}
.hapPasDetBox{
background: #FFFFFF;
border-radius: 18rpx 18rpx 18rpx 18rpx;
padding: 40rpx;
}
.hapPasDetImg{
margin-bottom: 50rpx;
}
.hapPasDetImg image{
width: 141rpx;
height: 141rpx;
border-radius: 14rpx 14rpx 14rpx 14rpx;
border: 1rpx solid #000000;
display: inline-block;
}
.hapPasDetImg view{
margin-left: 30rpx;
font-weight: bold;
font-size: 28rpx;
color: #080A0A;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
}
.hapPasDetText{
padding: 0 0 10rpx 0;
}
.hapPasDetL{
width: 180rpx;
font-weight: 500;
font-size: 28rpx;
color: #757776;
line-height: 70rpx;
}
.hapPasDetR{
font-size: 28rpx;
line-height: 70rpx;
}
.hapPasDetRC{
font-weight: bold;
color: #080A09;
}
.hapPasDetRC.active{
color: #FF3166;
}
.hapPasDetRCop{
line-height: 35rpx;
background: #E9E4E0;
border-radius: 15rpx 15rpx 15rpx 15rpx;
color: #000000;
font-weight: 500;
display: inline-block;
padding: 0 10rpx;
margin-left: 30rpx;
}
</style>
\ No newline at end of file
......@@ -4,15 +4,15 @@
@scrolltoupper="scrollTopHandler" class="col"
style="height: 1px;width: 100%;">
<view class="userStyle">
<view class="headStatus" v-if="scrollTop > 50" :style="{
<view class="headStatus" v-if="scrollTop > 50" :style="[titleStyle,{
zIndex: scrollTop < 10 ? 'unset' : 2,
opacity: scrollTop < 10 ? '100' : scrollTop,
}">
}]">
<view class="title">{{ pageTitle }}</view>
</view>
<view class="userBox">
<vipUserHeader v-if="statistics&&statistics.isVip==1" :user_info="user_info" :statistics="statistics" :b2b_user_info="b2b_user_info" @login="openAuth"></vipUserHeader>
<userHeader v-if="statistics&&statistics.isVip!=1" :user_info="user_info" :statistics="statistics" :b2b_user_info="b2b_user_info" @login="openAuth"></userHeader>
<vipUserHeader v-if="statistics&&statistics.isVip==1" :statistics="statistics" :b2b_user_info="b2b_user_info" @login="openAuth"></vipUserHeader>
<userHeader v-if="statistics&&statistics.isVip!=1" :statistics="statistics" :b2b_user_info="b2b_user_info" @login="openAuth"></userHeader>
<view class="userMyOrderBox">
<view style="position: relative;top:-13rpx">
<view class="userMyOrder">
......@@ -108,6 +108,7 @@
</view>
</view>
<view style="height: 140rpx;"></view>
</view>
</view>
......@@ -139,8 +140,6 @@
showAuth: false,
b2b_user_info: {},
mall_UserInfo: {},
u: {},
user_info: {},
statistics: {},
msg:{
pageSize:100,
......@@ -153,7 +152,8 @@
indicatorDots: true,
autoplay: true,
interval: 4000,
duration: 1000
duration: 1000,
titleStyle: {},
};
},
onLoad() {
......@@ -162,7 +162,14 @@
this.showAuth = !this.mall_UserInfo || !this.b2b_user_info;
},
onShow() {
this.userCenterinfo(2);
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
this.GetCustomerCenter()
this.g = []
this.init()
......@@ -221,27 +228,9 @@
}
uni.navigateTo({ url });
},
//获取菜单配置
userCenterinfo(type = 1) {
uni.showNavigationBarLoading();
this.request2({
url: "/api/Mall/GetUserCenter",
data: {},
},
(res) => {
uni.hideNavigationBarLoading();
this.user_info = res.data.user_info;
if (this.mall_UserInfo && type == 1) {
// this.getLogin()
}
}
);
},
reloadUserinfo() {
this.b2b_user_info = uni.getStorageSync('b2b_user');
this.userCenterinfo();
this.u = this.user_info;
this.GetCustomerCenter();
this.mall_UserInfo = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo") : {};
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment