Commit 95bf45ae authored by youjie's avatar youjie

大红包

parent 5e840888
......@@ -77,9 +77,10 @@
"usingComponents" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "你的位置信息将用于小程序位置接口的效果展示"
"desc" : "需要获取您的位置以提供精准服务"
}
},
"requiredPrivateInfos" : [ "getLocation", "chooseLocation" ],
"optimization" : {
"subPackages" : true
}
......
<template>
<view class="ActInProBox column">
<view class="ActInProBox column"
:class="[Details.Level>0?`activeLv${Details.Level}`:'activeLv1']">
<scroll-view :scroll-y="true"
style="height: 1px;flex: 1;box-sizing: border-box;"
@scroll="scroll"
:scroll-top="scrollTop">
<view class="ActInProHeaderBox activeLv5" :style="{ opacity: 100 - boxOption + '%' }">
<view class="ActInProHeaderBox" :style="{ opacity: 100 - boxOption + '%' }"
:class="[Details.Level>0?`activeLv${Details.Level}`:'activeLv1']">
<headers :title="page" color="#fff"></headers>
<view class="ActInProHeader">
<view class="ActInProHeader" v-if="Details&&Details.TradeMoney>=0">
<view class="ActInProHeaderTitle">
Lv1
Lv{{ Details.Level>0?Details.Level:1 }}
<text>
出发序章
<!-- 秘境探索
云端行者
丝路征程
寰宇旅人 -->
<template v-if="Details.Level<=1">出发序章</template>
<template v-else-if="Details.Level==2">秘境探索</template>
<template v-else-if="Details.Level==3">云端行者</template>
<template v-else-if="Details.Level==4">丝路征程</template>
<template v-else-if="Details.Level==5">寰宇旅人</template>
</text>
</view>
<view class="ActInProHeaderTime row-sbas-n">
<view>有效期至2025年12月31日 23:59</view>
<view>有效期至{{ Details.EndTime }}</view>
<view class="col" @click="goTisp">规则说明</view>
</view>
<view class="ActInProHeaderNum row">
<view class="ActInProHeaderNT ActInProHeaderNTL col column">
<view>当前交易额</view>
<view>¥<text>10550</text></view>
<view>¥<text>{{ Details.TradeMoney.toFixed(2) }}</text></view>
</view>
<view class="ActInProHeaderNT ActInProHeaderNTR col column">
<view>预计收益</view>
<view>¥<text>1288</text></view>
<view>¥<text>{{ Details.TotalClosePrice.toFixed(2) }}</text></view>
</view>
</view>
<view class="lineBox">
<view class="lineBox" v-if="Details.TradeMoney<Details.MaxMoney">
<view class="greyLine"></view>
<view class="lineHigBox"
:style="{'width': '50%'}">
<view class="lineHighlight">
:style="{'width': `${progress}%`}">
<view class="lineHighlight" v-if="Details.TradeMoney>0">
<view></view>
</view>
</view>
</view>
<view class="ActInProHeaMoney">交易额达¥100,000 返5%</view>
<view class="ActInProHeaMoney row-sb-n">
<view>
<template v-if="Details.TradeMoney>Details.MaxMoney">
已达最高交易额{{ Details.MaxMoney }},返{{Details.Ratio}}
</template>
<template v-else-if="Details.TradeMoney>Details.Money">
当前返{{Details.Ratio}}
</template>
<template v-else>
交易额达{{ Details.Money }},返{{Details.Ratio}}
</template>
</view>
<view v-if="Details.RatioNext">下一级返{{Details.RatioNext}}‰</view>
</view>
</view>
</view>
<view v-if="scrollTop > 50" class="ActInProHeaders">
......@@ -48,14 +63,24 @@
<view style="padding: 0 40rpx;">
<view v-if="scrollTop > 650" class="ActInProCenTimeBox row-sbas-n"
style="padding: 10rpx 0 30rpx;">
<view class="ActInProCenTime row" @click="SelectDate">
<text>{{year}}</text>
<text>{{month}}</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
<view class="row items-center">
<view class="ActInProCenTimeAll"
:class="[isType==1?'active':'']"
@click="SelectDate(1)">
全部
</view>
<view class="ActInProCenTime row">
<view @click="SelectDate(2)"
:class="[isType==2||isType==0?'active':'']">
<text>{{year}}年</text>
<text>{{month}}月</text>
</view>
<u-icon @click="SelectDate(0)" name="arrow-down" size="28" color="#000"></u-icon>
</view>
</view>
<view class="ActInProCenSSE">
总销售额:
<text>¥518960</text>
<text v-if="total">¥{{total}}</text>
</view>
</view>
</view>
......@@ -65,46 +90,94 @@
<view class="ActInProCenTjBox">
<view class="ActInProCenTjTitle">月销售额统计</view>
<view class="ActInProCenBar">
<mrsongCharts v-if="chartsData.series[0].data.length>0"
height="414rpx"
type='column'
align='center'
:options="options"
:config="config"
:charts-data="chartsData" />
<u-empty v-else text="暂无月销售额统计!" mode="data" padding-top="10" color="#000"></u-empty>
</view>
</view>
<view class="ActInProCenTimeBox row-sbas-n">
<view class="ActInProCenTime row" @click="SelectDate">
<text>{{year}}</text>
<text>{{month}}</text>
<u-icon name="arrow-down" size="28" color="#000"></u-icon>
<view class="row items-center">
<view class="ActInProCenTimeAll"
:class="[isType==1?'active':'']"
@click="SelectDate(1)">
全部
</view>
<view class="ActInProCenTime row">
<view @click="SelectDate(2)"
:class="[isType==2||isType==0?'active':'']">
<text>{{year}}年</text>
<text>{{month}}月</text>
</view>
<u-icon @click="SelectDate(0)" name="arrow-down" size="28" color="#000"></u-icon>
</view>
</view>
<view class="ActInProCenSSE">
总销售额:
<text>¥518960</text>
<text>¥{{ total }}</text>
</view>
</view>
<u-picker mode="time" v-model="showTime" :defaultTime="times" :params="params" @confirm = 'confirm'></u-picker>
<view class="ActInProListBox">
<view class="ActInProList activeJD"
v-for="(item,index) in 10" :key="index">
<view class="ActInProList activeLY"
v-for="(item,index) in CustomerOrderList" :key="index">
<view class="ActInProListTitle">
<text>
酒店
旅游
</text>
<view></view>
</view>
<view class="ActInProListDec">
星空九寨~九寨沟.黄龙.熊猫乐园.纯玩3天(4人定制小包团·赠送...
{{ item.Title }}
</view>
<view class="ActInProListDecNum">¥1440,2</view>
<view class="ActInProListDecNum">¥{{item.Unit_Price}},{{item.GuestNum}}</view>
<view class="ActInProListTime row-sbas-n items-center">
<view>完结时间:2025-04-01</view>
<view class="ActInProListTimeR">¥2880</view>
<view>完结时间:{{ item.CreateDate }}</view>
<view class="ActInProListTimeR">¥{{item.Money}}</view>
</view>
</view>
<u-empty v-if="CustomerOrderList.length == 0" text="暂无数据" mode="data"></u-empty>
</view>
<view v-if="Details"
class="RuleDetails">
<view class="RuleDetailsTitle">规则说明</view>
<view class="RuleDetailsText">
系统将自动汇算客户在{{Details.StartTime.slice(0,4) }}年度内的团队旅游交易
总金额(不包含单项产品),根据达成总金额锁定对应的返佣比例(具体的比例
等级参照下图中的“{{Details.StartTime.slice(0,4) }}大红包返佣规则”部分)
计算应返金额。结算时间为次年的一月份,届时客户在旅小友平台上查看返佣总
金额与明细记录并且申请提现,金额只能提取到双方签订合同的银行账户,
如有变更请及时联系印象之旅销售代表协助处理。本次返佣比例如下:
</view>
<table class="RuleDetailsTable"
v-if="Details&&Details.CommissionRatioList">
<tr class="row" style="text-align: center;">
<th class="col">{{Details.CommissionRatioList[0].Year}}</th>
</tr>
<tr class="row">
<th class="RuleDetailsTd1">等级</th>
<th>达标额</th>
<th class="RuleDetailsTd2">返佣比列</th>
</tr>
<tr class="row" v-for="(item,index) in Details.CommissionRatioList"
:key="index">
<td class="RuleDetailsTd1">Lv{{ index+1 }}</td>
<td>¥{{ item.Money }}~{{ item.MaxMoney }}</td>
<td class="RuleDetailsTd2">{{ item.Ratio }}‰</td>
</tr>
</table>
</view>
<!--
<u-alert-tips :close-able="false"
style="border-radius: 18rpx;"
type="warning"
title="2025年2月1日(包含)起生效"
description="积分:平台所有跟团游产品均可参加积分活动,积分获得比例:100:1(例:客人实付金额100元,获得1个积分)。团队出发后7个工作日内将会存入积分余额。"
></u-alert-tips>
></u-alert-tips>-->
<view style="height: 40rpx;"></view>
</view>
......@@ -113,14 +186,18 @@
</scroll-view>
<auth v-if="showAuth&&is_show_auth==1" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
import headers from "@/components/header/header";
import mrsongCharts from '@/uni_modules/mrsong-charts/components/mrsong-charts/mrsong-charts.vue';
export default {
components: {
headers
auth,
headers,
mrsongCharts
},
data() {
return {
......@@ -141,28 +218,212 @@ export default {
showTime: false,
msg: {
QStartDate: '',
QEndDate: ''
QEndDate: '',
YearMonth: '',
},
scrollHeight: 0,
scrollTop: 0,
U: {},
showAuth: false,
is_show_auth: 0,
b2bUser:{},
ContractId: 0,
Details: null,
CustomerOrderListAll:[],
CustomerOrderList: [],
progress: 0,
total: 0,
chartsData:{
categories: [],
series: [
{
name: "销售额",
data: []
}
]
},
config:{
itemCount: 3, // x轴单屏显示数据的数量,默认为5个
scrollShow: false, // 新增是否显示滚动条,默认false
scrollAlign: 'left', // 滚动条初始位置
rotateLabel: false, // X轴label旋转
min: 0, // Y轴最小值
max: 150, //Y轴大值
unit: '', // Y轴单位
enableScroll: false, // 开启滚动模式
color: [
// 颜色设置
'#9AD3FF',
],
},
options:{
color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
padding: [25,5,10,5],
enableScroll: false,
legend: {
show: false,
},
xAxis: {
disableGrid: true,
axisLine: true,
axisLineColor: '#F2F8FF',
},
yAxis: {
disableGrid: true,
disabled: true,
axisLineColor: '#F2F8FF',
// data: [
// {
// min: -40,
// max: 40
// }
// ],
splitNumber: 4
},
extra: {
column: {
type: "group",
width: 10,
linearType: "custom",
// linearOpacity: 0.8,
barBorderRadius: [10,10,10,10],
customColor:[
'#085FF3',
],
}
},
},
isType: 2,
}
},
watch:{
CustomerOrderList: {
handler (val, oldval) {
this.count()
},
deep: false,
immediate: false,
},
},
onLoad(options) {
this.ContractId = options.ContractId
},
onShow() {
this.U = uni.getStorageSync("mall_UserInfo");
this.b2bUser = uni.getStorageSync("b2b_user");
let basedata = uni.getStorageSync("basedata");
//判断后台是否开启自动授权
if (basedata && basedata.mall
&& basedata.mall.setting
&& basedata.mall.setting.is_show_auth ==1) {
this.is_show_auth = 1;
}
if (!this.U) {
this.U = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
} else if (!this.b2bUser && this.is_show_auth == 1) {
this.U = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
}
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.msg.YearMonth = this.year + '-' + this.month
},
mounted() {
this.getSignDetails()
},
methods: {
formatNumberWithUnit(num) {
if (num === 0) return '0.00';
const units = ['', 'K', 'M', 'B', 'T']; // 单位数组:千(k)、百万(M)、十亿(B)、万亿(T)
const exponent = Math.floor(Math.log10(num));
const unitIndex = Math.max(0, Math.floor(exponent / 3)) - 1; // 计算单位索引
// 缩放数值并保留三位有效数字
const scaledNum = num / (10 ** (unitIndex * 3));
const formatted = scaledNum.toLocaleString('en-US', {
precision: 3, // 保留三位有效数字
rounding: 'round-trip' // 四舍五入
});
// 处理科学计数法(如 1.23e3 → 1230)
if (formatted.includes('e')) {
const [significand, exp] = formatted.split('e');
return significand + '0'.repeat(parseInt(exp)) + units[unitIndex + 1];
}
const cleanedInteger = formatted.replace(/0+$/, '')
let money = cleanedInteger.split(',')
if(money.length>1){
return money[0] + units[unitIndex + 1]
}
return money + units[unitIndex + 1];
},
getSignDetails(){
uni.showLoading({
title: '加载中',
mask: true
})
this.apipost('app_customer_GetAuthenticationContractDetails',{
ContractId: this.ContractId
},
res=>{
if (res.resultCode == 1) {
let data = res.data
this.Details = data
this.CustomerOrderListAll = data.CustomerOrderList
this.CustomerOrderList = data.CustomerOrderList.filter(item=>{
return this.msg.YearMonth == item.CreateDate.slice(0,7)
})
let TotalAmount = 0
for(let i=0;i<this.Details.OrderMonthList.length;i++){
// this.chartsData.series[0].data.push({
// labelShow: true,
// labelText: this.Details.OrderMonthList[i].FormattedAmount,
// value: this.Details.OrderMonthList[i].TotalAmount
// })
if(this.Details.OrderMonthList[i].TotalAmount>0){
let name = this.Details.OrderMonthList[i].MonthStr
if(this.Details.OrderMonthList[i].MonthStr<10) name = this.Details.OrderMonthList[i].MonthStr.slice(1,2)+'月'
this.chartsData.categories.push(name)
this.chartsData.series[0].data.push(this.Details.OrderMonthList[i].TotalAmount)
}
if(this.Details.OrderMonthList[i].TotalAmount>TotalAmount){
TotalAmount = this.Details.OrderMonthList[i].TotalAmount
}
}
this.count()
if(this.Details.TradeMoney>0) this.progress = (this.Details.TradeMoney/this.Details.MaxMoney)*100
uni.hideLoading()
this.$forceUpdate()
}
})
},
getCustomerOrderList(){
this.CustomerOrderList = this.CustomerOrderListAll.filter(item=>{
return this.msg.YearMonth == item.CreateDate.slice(0,7)
})
},
count(){
let total = 0;
if (this.CustomerOrderList.length>0) {
this.CustomerOrderList.forEach(order => {
total += Number(order.Money);
});
}
this.total=total.toFixed(2);
this.$forceUpdate()
},
goTisp(){
console.log(1111)
this.scrollTop = this.scrollHeight?this.scrollHeight:1000000
......@@ -176,11 +437,25 @@ export default {
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()
this.scrollTop = 630
this.msg.YearMonth = this.year + '-' + this.month
this.getCustomerOrderList()
this.showTime = false
if(this.scrollTop>650){
this.scrollTop = 630
}
},
SelectDate(){
this.showTime = true
SelectDate(type){
this.isType = type;
if(type==1){
this.CustomerOrderList = JSON.parse(JSON.stringify(this.CustomerOrderListAll))
}else if(type==2){
this.getCustomerOrderList()
}else{
this.showTime = true
}
if(this.scrollTop>650){
this.scrollTop = 630
}
},
goUrl(){
uni.navigateTo({
......@@ -192,6 +467,17 @@ export default {
this.scrollTop = e.detail.scrollTop;
this.boxOption = Math.floor((e.detail.scrollTop - 200) / 1.5);
},
reloadUserinfo() {
const pages = getCurrentPages()
const curPage = pages[pages.length-1]
curPage.onLoad(curPage.options)
curPage.onShow()
curPage.onReady()
},
//关闭登录窗口
gbAuth() {
this.showAuth = false;
},
}
}
</script>
......@@ -257,11 +543,11 @@ export default {
color: #FFFFFF;
}
.lineBox{
width: 613rpx;
// width: 613rpx;
position: relative;
}
.greyLine{
width: 613rpx;
// width: 613rpx;
height: 8rpx;
border-radius: 4rpx;
}
......@@ -338,6 +624,32 @@ export default {
position: relative;
top: -2rpx;
}
.ActInProCenTimeAll{
border-radius: 10rpx;
padding: 0 15rpx 0 0;
font-size: 24rpx;
margin-right: 20rpx;
}
.ActInProBox.activeLv1 .ActInProCenTimeAll.active,
.ActInProBox.activeLv1 .ActInProCenTime .active{
color: #3175FF;
}
.ActInProBox.activeLv2 .ActInProCenTimeAll.active,
.ActInProBox.activeLv2 .ActInProCenTime .active{
color: #FF3166;
}
.ActInProBox.activeLv3 .ActInProCenTimeAll.active,
.ActInProBox.activeLv3 .ActInProCenTime .active{
color: #1BCB8B;
}
.ActInProBox.activeLv4 .ActInProCenTimeAll.active,
.ActInProBox.activeLv4 .ActInProCenTime .active{
color: #FF9731;
}
.ActInProBox.activeLv5 .ActInProCenTimeAll.active,
.ActInProBox.activeLv5 .ActInProCenTime .active{
color: #9B2020;
}
.ActInProCenSSE{
font-weight: bold;
font-size: 24rpx;
......@@ -373,6 +685,30 @@ export default {
position: relative;
z-index: 2;
}
.RuleDetailsTable{
margin-top: 20rpx;
}
.RuleDetailsTable tr th,.RuleDetailsTable tr td{
border: 2rpx solid #eee;
padding: 5rpx 10rpx;
}
.RuleDetailsTable tr th:nth-child(2),.RuleDetailsTable tr td:nth-child(2){
width: 1px;
flex: 1;
}
.RuleDetailsTd1{
width: 100rpx;
}
.RuleDetailsTd2{
width: 150rpx;
}
.RuleDetailsTable tr th{
font-weight: bold;
}
.RuleDetailsTable tr td{
font-size: 24rpx;
color: #757776;
}
.ActInProList.activeJD .ActInProListTitle view{
background: #3175FF;
}
......@@ -398,7 +734,7 @@ export default {
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
padding: 20rpx 0 10rpx 0;
padding: 20rpx 0 9rpx 0;
}
.ActInProListDecNum{
font-weight: 500;
......@@ -416,13 +752,28 @@ export default {
font-size: 32rpx;
color: #080A0A;
}
.ActInProHeaderNTR{
color: #FFE6A2;
}
.ActInProHeaderNTR view:first-child{
color: #FFE6A3;
}
.RuleDetails{
background: #FFFFFF;
border-radius: 18rpx;
padding: 38rpx;
}
.RuleDetailsTitle{
font-size: 28rpx;
margin-bottom: 10rpx;
font-weight: 600;
}
.RuleDetailsText{
font-size: 24rpx;
line-height: 40rpx;
text-indent: 50rpx;
color: #757776;
}
.ActInProHeaderBox.activeLv5 .greyLine{
background: #010102;
}
......
<template>
<view class="PaymentProBox column">
<view class="PaymentProTitle row items-center justify-center">
<!-- {{authInfor.ContractStatus}}--{{ authInfor.Status }} -->
<image v-if="authInfor.Status==1||authInfor.Status==3" :src="stateImg[0]" />
<image v-if="authInfor.ContractStatus==5&&authInfor.Status==2" :src="stateImg[1]" />
<text>
......@@ -11,7 +12,7 @@
打款中
</template>
<template v-if="(authInfor.ContractStatus==1||authInfor.ContractStatus==5)&&authInfor.Status==2">
已完成
{{authInfor.ContractStatus==1?'未生效':'已完成'}}
</template>
</text>
</view>
......@@ -64,14 +65,15 @@
<view class="PaymentProCJDText">{{ item.Name }}</view>
</view>
<view class="PaymentProCJDBoxR">
<template v-if="type==2&&((authInfor.Status==1&&!index)||authInfor.Status==3)">{{ item.Time }}</template>
<template v-if="(type==2&&((authInfor.Status==1&&!index)||authInfor.Status==3))
||(type==3&&item.Status==2)">{{ item.Time }}</template>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="PaymentProButBox row">
<view class="PaymentProBut PaymentProButL col">返回</view>
<view class="PaymentProBut PaymentProButL col" @click="goBack">返回</view>
<view v-if="(type==2&&authInfor.Status==3)||type==3"
class="PaymentProBut PaymentProButR col"
@click="goUrl">
......@@ -156,16 +158,23 @@ export default {
this.getSignDetails()
},
methods: {
goBack(){
if(this.type==2){
uni.redirectTo({
url: '/pages/bigredrnvelope/list'
})
}else if(this.type==3){
uni.redirectTo({
url: '/pages/bigredrnvelope/list'
})
}
},
goUrl(){
if(this.type==2){
uni.navigateTo({//结算中
uni.navigateTo({//合同修改
url: `/pages/bigredrnvelope/signAcontract?ContractId=${this.ContractId}`
})
}else if(this.type==3){//进行中
uni.navigateTo({
url: `/pages/bigredrnvelope/ActivityInProgress?ContractId=${this.ContractId}`
})
}else if(this.type==4){//可结算
}else if(this.type==3){//可结算
uni.navigateTo({
url: `/pages/bigredrnvelope/SettableList?ContractId=${this.ContractId}`
})
......@@ -187,11 +196,30 @@ export default {
this.toExamineSteps[0].Time = data.CreateTime
this.toExamineSteps[1].Time = data.UpdateTime
this.stepList = JSON.parse(JSON.stringify(this.toExamineSteps))
}else{
for(let i=0;i<data.AuditSteps.length;i++){
let record = data.AuditSteps[i]
let Time = ''
if(record.AuditRecordList.length>0){
Time = data.AuditSteps[i].AuditRecordList[0].AduitDate
}
let obj = {
Name: i?record.AuditDescription:record.AuditRecordList[0].AuditName,
Id: i+1,
Time: Time,
Status: record.Status,
}
this.stepList.push(obj)
if(obj.Status==2){
this.StepNum = i
}
}
}
uni.hideLoading()
setTimeout(()=>{
uni.hideLoading()
},500)
}
})
},
getInfor(){
this.apipost('app_customer_GetAuthenticationDetails',{
......
<template>
<view class="SetListBox activeLv1 column">
<view class="SetListBox column"
:class="[Details.Level>0?`activeLv${Details.Level}`:'activeLv1']">
<view class="SetListHeaderBox">
<headers :title="page"></headers>
<view class="SetListHeader row items-center">
<view class="SetListHeaderL">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" />
<u-avatar v-if="b2bUser.photo||UserInformation.image" :src="b2bUser.photo?b2bUser.photo:UserInformation.image" size="88" shape="circle"></u-avatar>
<u-avatar v-else src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" size="88" shape="circle"></u-avatar>
<!-- <image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" />-->
</view>
<view class="SetListHeaderR">
<view class="SetListHeaderRTitle">Ranjunjun</view>
<view class="SetListHeaderRLV">等级:LV1.出发序章</view>
<view class="SetListHeaderRTitle">{{ UserInformation.name }}</view>
<view class="SetListHeaderRLV">等级:
Lv{{ Details.Level>0?Details.Level:1 }}.
<template v-if="Details.Level<=1">出发序章</template>
<template v-else-if="Details.Level==2">秘境探索</template>
<template v-else-if="Details.Level==3">云端行者</template>
<template v-else-if="Details.Level==4">丝路征程</template>
<template v-else-if="Details.Level==5">寰宇旅人</template>
</view>
</view>
</view>
</view>
<view class="SetListCenterBox column">
<view class="SetListCenterBox column" v-if="Details.TotalClosePrice>=0">
<view class="SetListCenTjBox">
<view class="SetListCenTjTitle">大红包额度</view>
<view class="row-sbas-n items-center">
<view class="SetListCenTNumL">
¥<text>2318</text>
¥<text>{{ Details.TotalClosePrice.toFixed(2) }}</text>
</view>
<view class="SetListCenTImgR">
<view class="SetListCenTImgR" v-if="Details.ContractStatus==3&&
Details.Status==2&&
Details.TotalClosePrice>0"
@click="Applyfor">
<view>
立即提现
</view>
......@@ -27,35 +40,46 @@
</view>
</view>
<view class="SetListCenTimeBox row-sbas-n">
<view class="SetListCenTime row" @click="SelectDate">
<text>{{year}}</text>
<text>{{month}}</text>
<u-icon name="arrow-down" size="28"></u-icon>
</view>
<view class="row items-center">
<view class="SetListCenTimeAll"
:class="[isType==1?'active':'']"
@click="SelectDate(1)">
全部
</view>
<view class="SetListCenTime row">
<view @click="SelectDate(2)"
:class="[isType==2||isType==0?'active':'']">
<text>{{year}}年</text>
<text>{{month}}月</text>
</view>
<u-icon @click="SelectDate(0)" name="arrow-down" size="28" color="#000"></u-icon>
</view>
</view>
<view class="SetListCenSSE">
总销售额:
<text>¥518960</text>
<text>¥{{ total }}</text>
</view>
</view>
<scroll-view :scroll-y="true"
style="height: 1px;flex: 1;box-sizing: border-box;border-radius: 18rpx;overflow: hidden;"
@scroll="scroll">
<view class="SetListListBox">
<view class="SetListList activeJD"
v-for="(item,index) in 10" :key="index">
<view class="SetListList activeLY"
v-for="(item,index) in CustomerOrderList" :key="index"
@click="goDetails(item)">
<view class="SetListListTitle">
<text>
酒店
旅游
</text>
<view></view>
</view>
<view class="SetListListDec">
星空九寨~九寨沟.黄龙.熊猫乐园.纯玩3天(4人定制小包团·赠送...
{{ item.Title }}
</view>
<view class="SetListListDecNum">¥1440,2</view>
<view class="SetListListDecNum">¥{{item.Unit_Price}},{{item.GuestNum}}</view>
<view class="SetListListTime row-sbas-n items-center">
<view>完结时间:2025-04-01</view>
<view class="SetListListTimeR">¥2880</view>
<view>完结时间:{{ item.CreateDate }}</view>
<view class="SetListListTimeR">¥{{item.Money}}</view>
</view>
</view>
</view>
......@@ -72,12 +96,15 @@
</view>
<u-picker mode="time" v-model="showTime" :defaultTime="times" :params="params" @confirm = 'confirm'></u-picker>
<auth v-if="showAuth&&is_show_auth==1" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
import headers from "@/components/header/header";
export default {
components: {
auth,
headers
},
data() {
......@@ -92,28 +119,183 @@ export default {
minute: false,
second: false
},
year: 2025,
month: 12,
date: 31,
year: '',
month: '',
date: '',
times: null,
showTime: false,
msg: {
QStartDate: '',
QEndDate: ''
QEndDate: '',
YearMonth: '',
},
scrollHeight: 0,
scrollTop: 0,
U: {},
showAuth: false,
is_show_auth: 0,
b2bUser:{},
isType: 2,
ContractId: 0,
Details: {},
CustomerOrderListAll: [],
CustomerOrderList: [],
UserInformation: null,
total: 0,
}
},
watch:{
CustomerOrderList: {
handler (val, oldval) {
this.count()
},
deep: false,
immediate: false,
},
},
onLoad(options) {
this.ContractId = options.ContractId
},
onShow() {
this.U = uni.getStorageSync("mall_UserInfo");
this.b2bUser = uni.getStorageSync("b2b_user");
let basedata = uni.getStorageSync("basedata");
//判断后台是否开启自动授权
if (basedata && basedata.mall
&& basedata.mall.setting
&& basedata.mall.setting.is_show_auth ==1) {
this.is_show_auth = 1;
}
if (!this.U) {
this.U = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
} else if (!this.b2bUser && this.is_show_auth == 1) {
this.U = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
}
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.msg.YearMonth = this.year + '-' + this.month
},
mounted() {
this.GetCustomerCenter()
this.getSignDetails()
},
methods: {
goDetails(item){
return
let url = null
let msg = null
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}`
}
if(url) {
let path = `/pages/${url}${msg}`
uni.navigateTo({
url: path,
});
}
},
Applyfor(){
if(!this.ContractId) return uni.showToast({
title: '请先选择合同',
icon:'none',
duration: 2000,
})
uni.showLoading({
title: '提交中...',
mask: true
})
this.apipost('app_customer_Update2025ClearingAlliance',
{
ContractId: this.ContractId
},
(res) => {
if(res.resultCode == 1){
uni.showToast({
title: '提交成功',
icon: 'success',
duration: 2000,
})
uni.navigateTo({
url: `/pages/bigredrnvelope/PaymentProgress?type=3&ContractId=${this.ContractId}`
})
}
uni.hideLoading()
},err=>{
uni.showToast({
title: err.message,
icon:'none',
duration: 2000,
})
uni.hideLoading()
}
);
},
GetCustomerCenter(){
this.apipost('b2b_get_GetCustomerCenter_New',
{},
(res) => {
this.UserInformation = res.data
},err=>{
}
);
},
getSignDetails(){
uni.showLoading({
title: '加载中',
mask: true
})
this.apipost('app_customer_GetAuthenticationContractDetails',{
ContractId: this.ContractId
},
res=>{
if (res.resultCode == 1) {
let data = res.data
this.Details = data
this.CustomerOrderListAll = data.CustomerOrderList
this.getCustomerOrderList()
uni.hideLoading()
this.$forceUpdate()
}
})
},
getCustomerOrderList(){
this.CustomerOrderList = this.CustomerOrderListAll.filter(item=>{
return this.msg.YearMonth == item.CreateDate.slice(0,7)
})
},
count(){
let total = 0;
if (this.CustomerOrderList.length>0) {
this.CustomerOrderList.forEach(order => {
total += Number(order.Money);
});
}
this.total=total.toFixed(2);
this.$forceUpdate()
},
goTisp(){
this.scrollTop = this.scrollHeight
},
......@@ -126,10 +308,21 @@ export default {
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()
this.msg.YearMonth = this.year + '-' + this.month
this.getCustomerOrderList()
this.showTime = false
// this.scrollTop = 630
},
SelectDate(){
this.showTime = true
SelectDate(type){
this.isType = type;
if(type==1){
this.CustomerOrderList = JSON.parse(JSON.stringify(this.CustomerOrderListAll))
}else if(type==2){
this.getCustomerOrderList()
}else{
this.showTime = true
}
// this.scrollTop = 630
},
goUrl(){
uni.navigateTo({
......@@ -239,6 +432,32 @@ export default {
top: -2rpx;
color: #000;
}
.SetListCenTimeAll{
border-radius: 10rpx;
padding: 0 15rpx 0 0;
font-size: 24rpx;
margin-right: 20rpx;
}
.SetListBox.activeLv1 .SetListCenTimeAll.active,
.SetListBox.activeLv1 .SetListCenTime .active{
color: #3175FF;
}
.SetListBox.activeLv2 .SetListCenTimeAll.active,
.SetListBox.activeLv2 .SetListCenTime .active{
color: #FF3166;
}
.SetListBox.activeLv3 .SetListCenTimeAll.active,
.SetListBox.activeLv3 .SetListCenTime .active{
color: #1BCB8B;
}
.SetListBox.activeLv4 .SetListCenTimeAll.active,
.SetListBox.activeLv4 .SetListCenTime .active{
color: #FF9731;
}
.SetListBox.activeLv5 .SetListCenTimeAll.active,
.SetListBox.activeLv5 .SetListCenTime .active{
color: #9B2020;
}
.SetListCenSSE{
font-weight: bold;
font-size: 24rpx;
......
......@@ -9,34 +9,38 @@
style="width: 100%;height: 1px;flex: 1;">
<view class="bigRedEnvLCBox">
<!-- activeDaiKQ activeJinXZ activeChaK activeChaKJD-->
<view class="bigRedEnvLC " v-for="(item,index) in dataList" :key="index"
<view class="bigRedEnvLC" v-for="(item,index) in dataList" :key="index"
:class="[{'activeDaiKQ':item.ContractStatus==3&&item.Status==2,
'activeJinXZ':item.ContractStatus==2&&item.Status==2,
'activeChaK':(item.ContractStatus==4||ContractStatus==5)&&Status==2,
'activeJinXZ':(item.ContractStatus==2&&item.Status==2)||item.ContractStatus==1,
'activeChaK':(item.ContractStatus==4||item.ContractStatus==5)&&item.Status==2,
'activeChaKJD':item.Status==1||item.Status==3}]">
<view class="bigRedEnvLCBj">
<view class="row items-center">
<view class="bigRedEnvLCLeft col">
<view class="bigRedEnvLCLTitle"><text>{{ item.C_ProductName }}</text></view>
<view v-if="item.Status!=1" class="bigRedEnvLCLTime">
<template v-if="item.ContractStatus==3&&item.Status==2">提交时间:{{ item.C_PayDate }}</template>
<template v-if="(item.ContractStatus==4||ContractStatus==5)&&Status==2">结算时间{{ item.JieSuan }}</template>
<template v-if="item.ContractStatus==2&&item.Status==2">提交时间:{{ item.C_PayDate }}</template>
<template v-if="item.ContractStatus==3&&item.Status==2">结算时间:{{ item.JieSuan }}</template>
<template v-if="(item.ContractStatus==4||item.ContractStatus==5)&&item.Status==2">结算时间:{{ item.C_PayDate }}</template>
</view>
</view>
<view class="bigRedEnvLCRight">
<view class="bigRedEnvLCbigRedEnvLCLTimeRBox column"
<view class="bigRedEnvLCRBox column"
v-if="item.Status!=1&&item.Status!=3"
@click="(item.ContractStatus==4||item.ContractStatus==5)&&Status==2?goDetails(item,3):''">
@click="item.ContractStatus==2&&item.Status==2?goDetails(item,3):
item.ContractStatus==3&&item.Status==2?goDetails(item,4):
(item.ContractStatus==4||item.ContractStatus==5)&&item.Status==2?goDetails(item,5):''">
<view class="bigRedEnvLCRTitle">-
<text>
<template v-if="item.ContractStatus==3&&item.Status==2">待开启</template>
<template v-if="item.ContractStatus==2&&item.Status==2">进行中</template>
<template v-if="item.ContractStatus==4&&Status==2">结算中</template>
<template v-if="item.ContractStatus==1">待生效</template>
<template v-if="item.ContractStatus==4&&item.Status==2">结算中</template>
<template v-if="item.ContractStatus==5&&item.Status==2">已完成</template>
</text> -</view>
<view class="bigRedEnvLCRText">
¥
<text>{{ item.TotalClosePrice }}</text>
<text>{{ item.TotalClosePrice.toFixed(2) }}</text>
</view>
<view class="bigRedEnvLCRTYg">预估</view>
</view>
......@@ -120,13 +124,18 @@ export default {
let path = '';
if(type==1){
path = 'signAcontract?'
}else if(type==2){
}else if(type==2){//合同进度
path =`PaymentProgress?type=${type}&`
}else if(type==3){ //进行中
path =`ActivityInProgress?`
}else if(type==4){ //待开启
path =`SettableList?`
}else if(type==5){ //提现完成
path =`PaymentProgress?type=3&`
}
uni.navigateTo({
url: `/pages/bigredrnvelope/${path}ContractId=${item.ContractId}`
})
},
getList(){
uni.showLoading({
......@@ -209,7 +218,7 @@ export default {
}
.bigRedEnvLCLeft{
color: #E95E2F;
position: relative;
// position: relative;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
......@@ -223,7 +232,7 @@ export default {
font-size: 20rpx;
margin-top: 10rpx;
position: absolute;
bottom: -30rpx;
bottom: 20rpx;
}
.bigRedEnvLCRight{
width: 171rpx;
......@@ -234,7 +243,7 @@ export default {
width: 165rpx;
height: 207rpx;
position: absolute;
top: -112rpx;
top: -109rpx;
padding: 15rpx 19rpx 0 19rpx;
}
.bigRedEnvLiYou{
......@@ -276,7 +285,7 @@ export default {
font-size: 18rpx;
color: #A4571F;
text-align: center;
margin-top: 5rpx;
// margin-top: 5rpx;
}
.bigRedEnvLCRText text{
font-size: 27rpx;
......
......@@ -129,7 +129,10 @@ export default {
// curPage.onReady()
}else{
console.log(uni.getStorageSync("LoginState"),'---log')
if(uni.getStorageSync("LoginState")) return
if(uni.getStorageSync("LoginState")) {
uni.removeStorageSync("LoginState")
return
}
uni.setStorageSync("LoginState",true)
setTimeout(()=>{
uni.redirectTo({
......
......@@ -5,7 +5,8 @@
<text class="chart-title">{{ title }}</text>
</slot>
</view>
<view class="charts-box">
<view class="charts-box"
:style="{'height':height}">
<slot name="unit">
<view v-if="unit" class="chart-unit">单位:{{ unit ? `(${unit})` : '' }}</view>
</slot>
......@@ -87,6 +88,10 @@ export default {
align: {
type: String,
default: 'center'
},
height:{
type: String,
default: '600px'
}
},
data() {
......
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