Commit c3bcaf7f authored by youjie's avatar youjie

取消提示

parent 27bea614
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.cancelProgress{
padding: 30rpx 30rpx 10rpx 30rpx;
}
.showModalCenter{
padding: 50rpx 52rpx 85rpx 52rpx;
background: #fff;
border-radius: 16rpx;
}
.cancelProgress .showModalCenter{
padding: 50rpx 32rpx 85rpx 32rpx;
}
.showModalCTitle{
margin-bottom: 30rpx;
}
.showModalCTitle text{
font-size:36rpx;
font-weight: bold;
}
.showModalCTisp{
padding: 0 0 40rpx 0;
margin-top: 47rpx;
}
.showModalTisp{
margin-bottom: 34rpx;
font-size: 28rpx;
line-height: 42rpx;
}
.showModalTisp text{
font-weight: bold;
text-decoration: underline;
}
.showModalCTNK{
margin-top: 28rpx;
font-size: 32rpx;
font-family: PingFang-SC, PingFang-SC;
font-weight: bold;
line-height: 42rpx;
}
.showModalCTNK text:first-child{
color: #FF3367;
}
@font-face {
font-family: "dinAli";
src: url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/BFOHNMvFqM80.woff2") format("woff2");
font-display: swap;
}
.vip-box-unactive{
margin: 50rpx 0rpx 0 0;
padding:0rpx 34rpx 0rpx 34rpx;
height: 120rpx;
position: relative;
border-radius: 18rpx;
}
.vip-box-unactive .vip-logo{
right: 34rpx;
width: 87rpx;
height: 99rpx;
top: 15rpx;
position: absolute;
z-index: 4;
}
.vip-box-unactive .remark{
font-size: 24rpx;
color: #E2C27A;
line-height: 1;
margin-bottom: 16rpx;
}
.vip-box-unactive .step-box{
position: relative;
justify-content: space-between;
}
.vip-box-unactive .step-box::after,
.vip-box-unactive .step-box .line{
height: 8rpx;
background: #C99E59;
border-radius: 5rpx;
left: 0;
top: 10rpx;
position: absolute;
z-index: 2;
}
.vip-box-unactive .step-box::after{
z-index: 1;
background: #F3F1EF;
border-radius: 0;
right: 0;
content: ' ';
display: block;
}
.vip-box-unactive .step-item{
/* font-weight: 400; */
font-size: 32rpx;
color: #BCBCBC;
width: 50rpx;
height: 50rpx;
background: #F3F1EF;
border-radius: 50%;
position: relative;
z-index: 3;
text-align: center;
font-family: dinAli;
text-align: center;
line-height: 50rpx;
font-weight: bolder;
top: -10rpx;
}
.vip-box-unactive .step-item.active{
background: #C99E59;
color: #fff;
}
.vip-box-unactive .step-item text{
width: 120rpx;
position: absolute;
bottom: -70rpx;
left: -31rpx;
text-align: center;
font-size: 28rpx;
}
.vip-box-unactive .step-item.active text{
color: #C99E59;
}
.vip-title{
font-weight: 800;
font-size: 36rpx;
color: #080A0A;
line-height: 70rpx;
}
</style>
<template>
<view class=""
:class="[type?'cancelProgress':'']">
<view class="showModalCenter">
<view class="showModalCTitle column">
<Text>取消政策</Text>
</view>
<view class="showModalCTisp">
<view class="showModalTisp">
旅游者在<text>行程开始前7日以内提出解除合同,</text>
将按下列标准扣除必要的费用:
</view>
<view class="showModalCTNK column">
<Text>行程开始前6日至4日</Text>
<Text>按旅游费用总额的20%</Text>
</view>
<view class="showModalCTNK column">
<Text>行程开始前3日至1日</Text>
<Text>按旅游费用总额的40%</Text>
</view>
<view class="showModalCTNK column">
<Text>行程开始当日</Text>
<Text>按旅游费用总额的60%</Text>
</view>
</view>
<view class="vip-box">
<view class="vip-title">进度</view>
<template v-if="vipInfo && vipInfo.FinishOrderCount<vipInfo.OrderCount">
<view class="vip-box-unactive row">
<view class="col">
<view class="step-box row items-center">
<view class="line" :style="{width:`${(vipInfo.FinishOrderCount/vipInfo.OrderCount)*100}%`}"></view>
<view class="step-item" :class="{'active':x<vipInfo.FinishOrderCount}" v-for="x in vipInfo.OrderCount">
{{x+1}}
<text v-if="x==0">等待审批</text>
<text v-if="x==1">汇款中</text>
<text v-if="x==2">完成</text>
</view>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
</template>
<script>
// import vip from './vip.vue'
export default {
props:['datas','type'],
// components: {vip},
data(){
return{
vipInfo:{
FinishOrderCount: 0.8,
OrderCount:3
},
userVipRights:{}
}
},
created() {
},
mounted() {
},
methods:{
},
}
</script>
\ No newline at end of file
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
.showModalBox{
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
letter-spacing: 2rpx;
}
.showModalImg{
width: 750rpx;
height: 400rpx;
position: absolute;
left: 0;
right: 0;
top: 0;
z-index: 1;
}
.showModalCenterBox{
width: 100%;
height: 100%;
margin-top: 40rpx;
background: #FFFDFE;
border-radius: 18rpx;
}
.showModalCenter{
position: relative;
z-index: 2;
padding: 60rpx 52rpx 85rpx 52rpx;
}
.showModalCTitle text{
font-size: 42rpx;
}
.showModalCTitle text:first-child{
font-weight: bold;
}
.showModalCTitle text:last-child{
font-size: 32rpx;
margin-top: 22rpx;
}
.showModalCTisp{
background: -webkit-gradient(linear, 0 0, 0 100%, from(#F9E8ED), to(#F7F7F7));
border-radius: 14rpx 14rpx 14rpx 14rpx;
padding: 52rpx 40rpx 40rpx 40rpx;
margin-top: 47rpx;
}
.showModalTisp{
margin-bottom: 34rpx;
font-size: 32rpx;
line-height: 50rpx;
}
.showModalTisp text{
font-weight: bold;
text-decoration: underline;
}
.showModalCTNK{
margin-top: 28rpx;
font-size: 36rpx;
font-family: PingFang-SC, PingFang-SC;
font-weight: bold;
}
.showModalCTNK text:first-child{
color: #FF3367;
}
.showModalCTNK text:last-child{
}
.showModalTime{
font-size: 36rpx;
color: #BCBCBC;
margin-top: 26rpx;
margin-bottom: 50rpx;
text-align: center;
}
.showModalBott{
width: 300rpx;
height: 98rpx;
line-height: 98rpx;
border-radius: 98rpx;
text-align: center;
background: #000;
color: #fff;
font-size: 32rpx;
}
.showModalBott:last-child{
color: #FF3367;
}
.showModalBott.active{
background: #BCBCBC;
color: #757776;
}
.showModalSel{
color: #FF3367;
font-size: 28rpx;
text-align: center;
margin-top: 32rpx;
margin-bottom: 20rpx;
}
.showModalSelBox{
text-align: center;
}
.showModalSBottom{
display: inline-block;
background: #FEEEF2;
padding: 5rpx 25rpx 8rpx 25rpx;
border: 1px solid #746E70;
color: #131414;
font-size: 28rpx;
border-radius: 30rpx;
font-family: PingFang-SC, PingFang-SC;
font-weight: 500;
}
.showModalSBottom img{
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
position: relative;
top: 6rpx;
}
.showModalSBottom text{
margin-left: 10rpx;
}
</style>
<template>
<view class="showModalInfo">
<u-popup v-model="showModal"
mode="bottom"
border-radius="18"
background-color="#000"
:mask-close-able="false">
<view class="showModalBox">
<img class="showModalImg" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/cancelTispTY.png"/>
<view class="showModalCenterBox">
<view class="showModalCenter">
<view class="showModalCTitle column">
<Text>取消需服务审批</Text>
<text>按标准扣除必要的费用</text>
</view>
<view class="showModalCTisp">
<view class="showModalTisp">
旅游者在<text>行程开始前7日以内提出解除合同,</text>
将按下列标准扣除必要的费用:
</view>
<view class="showModalCTNK column">
<Text>行程开始前6日至4日</Text>
<Text>按旅游费用总额的20%</Text>
</view>
<view class="showModalCTNK column">
<Text>行程开始前3日至1日</Text>
<Text>按旅游费用总额的40%</Text>
</view>
<view class="showModalCTNK column">
<Text>行程开始当日</Text>
<Text>按旅游费用总额的60%</Text>
</view>
</view>
<view class="showModalTime">请仔细阅读条款{{remainingTime}}s后确认</view>
<view class="row-sb-n showModalBottom">
<view class="showModalBott" @click="cancel">
<Text>关闭</Text>
</view>
<view class="showModalBott" @click="confirm"
:class="[submitCancel?'active':'']">
<Text>确定取消</Text>
</view>
</view>
<view class="showModalSel">紧急情况请联系服务人员</view>
<view class="showModalSelBox">
<view class="showModalSBottom row" @click="goConnection">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/ServiceTelephoneZK.png"/>
<text>{{ erpBaseInfo.emName }}</text>
</view>
</view>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
props:['showModal','orderNo','type'],
data(){
return{
Cancelmsg:{
Remark: ''
},
submitCancel: false,
erpBaseInfo: null,
remainingTime: 10, // 初始倒计时时间(秒)
timerId: null, // 定时器ID
isRunning: false, // 状态标识(防止重复启动)
}
},
created() {
console.log(uni.getStorageSync("b2b_user"),'=======b2b_user')
this.erpBaseInfo = uni.getStorageSync("b2b_user").erpBaseInfo
console.log(this.datas,'----=====datas')
},
mounted() {
setTimeout(() => {
this.startCountdown()
}, 50)
},
methods:{
startCountdown() {
if (this.isRunning) return;
this.isRunning = true;
this.timerId = setInterval(() => {
this.remainingTime--;
if (this.remainingTime <= 0) {
clearInterval(this.timerId);
this.isRunning = false;
this.confirm(); // 时间耗尽回调
}
}, 1000);
},
goConnection(){
uni.makePhoneCall({
phoneNumber: this.erpBaseInfo.imAccount
});
},
cancel(){
clearInterval(this.timerId);
this.isRunning = false;
this.$emit('cancel')
},
confirm(){
let that = this
if(this.submitCancel) return
wx.showModal({
title: '提示',
content: '确定取消订单?',
success: (tip) => {
if (tip.confirm) {
that.submitCancel = true
that.apipost(
"GetCancelOrder_post", {
OrderNo: this.orderNo,
},
(res) => {
that.submitCancel = false
that.cancel()
if (res.resultCode == 1) {
uni.showToast({
title: "操作成功",
icon: "success",
});
if(that.type) that.$emit('success');
else uni.navigateTo({
url: `/pages/AggregateOrders/AggregateOrdersList?OrderStatus=5`,
});
}
},
(err) => {
uni.showToast({
title: err.message,
icon: "none",
});
that.submitCancel = false
}
);
}
}
})
}
},
}
</script>
\ No newline at end of file
......@@ -102,6 +102,16 @@
}
}
},
{
"path": "userVip-center",
"style": {
"navigationStyle": "custom",
"mp-alipay": {
"transparentTitle": "always",
"titlePenetrate": "YES"
}
}
},
{
"path" : "user-profile",
"style" :
......@@ -115,6 +125,16 @@
{
"navigationBarTitleText" : "员工账号绑定"
}
},
{
"path": "happinessPassbook",
"style": {
"navigationStyle": "custom",
"mp-alipay": {
"transparentTitle": "always",
"titlePenetrate": "YES"
}
}
}
]
},
......
......@@ -42,6 +42,9 @@
}
}
/deep/.showModalInfo .u-drawer-bottom{
background-color: rgba(23,23,23,0) !important;
}
</style>
<template>
<view class="AggOrdBox column">
......@@ -113,16 +116,16 @@
}
},
onLoad(options){
if(options.OrderTypeStr){
this.msg.OrderTypeStr = options.OrderTypeStr
}
if(options.OrderTypeStr)this.msg.OrderTypeStr = options.OrderTypeStr
if(options.OrderStatus)this.msg.OrderStatus = options.OrderStatus
},
created() {
this.getOrderEnums()
this.init()
},
methods:{
research(){
research(status){
if(status) this.msg.OrderStatus = status;
this.msg.pageIndex = 1;
this.msg.pageSize = 10;
this.status = "loadmore";
......
<style lang="scss" scoped>
</style>
<template>
<view>
<u-popup v-model="showModal" mode="center" length="80%" border-radius="20px 20px 20px 20px">
<view style='display: flex;flex-direction: column;align-items: center;background: #fff;'>
<view style="display: flex;align-items: center;justify-content: center;height:70px ;">
<Text>是否取消订单?</Text>
</view>
<view style="display: flex;flex-direction: column;height:80px ;margin-left: 15px;width: 100%;" >
<Text style='margin-left: 10px;margin-top: 5px;'>备注</Text>
<input class="uni-input inputM" style='margin-left: 10px;margin-top: 5px;' v-model="Cancelmsg.Remark" placeholder="输入备注" />
</view>
<view style="display: flex;flex-direction: row;align-items: center;height: 50px;border-top: 1px solid #F5F5F5;width: 100%;">
<view style="width: 50%;display: flex;align-items: center;justify-content: center" @click="cancel">
<Text>取消</Text>
</view>
<view style="width: 50%;color: #2979ff;display: flex;align-items: center;justify-content: center" @click="confirm">
<Text>确定</Text>
</view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default{
props:['showModal','datas'],
data(){
return{
Cancelmsg:{
Remark: ''
}
}
},
onLoad(options){
},
created() {
},
methods:{
cancel(){
this.$emit('cancel')
},
confirm(){
}
}
}
</script>
\ No newline at end of file
......@@ -202,10 +202,10 @@ export default {
position: relative;
}
.carrHeader{
padding-top: 35rpx;
padding-top: 85rpx;
}
.carrHeader-right{
padding-right: 160rpx;
padding-right: 170rpx;
display: flex;
}
.carrHeader-right img{
......@@ -222,5 +222,6 @@ export default {
height: 63rpx;
border-radius: 50%;
border: 1px solid #CFC089;
margin-right: 20rpx;
}
</style>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<view class="AggOrdListBox">
<view class="visaList row"
v-for="(item,index) in g" :key="index"
@click="goDetail(item)"
@click="goDetails(item)"
:class="[item.orderStatus==4?'active':'']">
<view class="visaListL">
<image mode="aspectFill" :src="item.goodsPic"/>
......@@ -64,11 +64,16 @@
</view>
</view>
</view>
<cancelPrompt :showModal="showModal" @cancel="cancelPrompt" :datas="currentData"></cancelPrompt>
<cancelPrompt v-if="showModal"
:showModal="showModal"
@cancel="cancelModal"
@success="cancelSuccess"
type="1"
:orderNo="currentData.orderNo"></cancelPrompt>
</view>
</template>
<script>
import cancelPrompt from "./cancelPrompt.vue";
import cancelPrompt from "@/components/cancelPrompt/cancelPrompt.vue";
export default {
props:['orders'],
components: {
......@@ -96,6 +101,9 @@ export default {
},
methods:{
cancelSuccess(){
this.$emit('research',5)
},
submitGetCodeByOrderNo(item) {
uni.showLoading({
title: "请稍等片刻...",
......@@ -199,7 +207,7 @@ export default {
}
},
// 详情
goDetail(item){
goDetails(item){
let url = null
let msg = null
// #ifdef MP-DI
......@@ -233,7 +241,6 @@ export default {
//取消订单
goCancel(item) {
//未付款-调用后台取消
let that = this
if(this.submit||this.submitCancel) return
wx.showModal({
......@@ -243,8 +250,9 @@ export default {
if (tip.confirm) {
that.submitCancel = true
that.apipost(
"sellorder_post_B2BRemoveOrder", {
"b2b_get_GetB2BAllCancelOrder", {
ID: item.erpOrderId,
OrderTypeStr: item.goodsType,
},
(res) => {
that.submitCancel = false
......@@ -268,11 +276,11 @@ export default {
}
})
},
cancelPrompt(){
cancelModal(){
this.showModal = false
},
goCancelZK(item) {
if(item.orderStatus){
if(item.orderStatus==2){
this.currentData = item
return this.showModal = true
}
......
......@@ -109,14 +109,14 @@ export default {
position: relative;
}
.carrHeader{
padding-top: 35rpx;
padding-top: 85rpx;
}
.carrHeader-right{
width: 1px;
flex: 1;
display: flex;
padding-left: 60rpx;
padding-right: 160rpx;
padding-right: 170rpx;
}
.carrHeader-right view{
width: 1px;
......
......@@ -213,12 +213,13 @@
</view>
</template>
<cancelProgress v-if="order.OrderStatus==2" :datas="order" type="1"></cancelProgress>
<view style="padding-bottom: 20rpx;"></view>
</scroll-view>
<view class="botton-box" :style="{paddingBottom:`${bottomSafeHeight}rpx`}">
<!-- #ifdef MP-DI -->
<view style=" display: flex;justify-content: space-between;">
<view class="text-center cities-name" @click="goCancelZK" v-if="order.OrderStatus==1" style="background-color: #fff;border: 1px solid #1d1d20;flex:1; border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#333">取消订单</view>
<view class="text-center cities-name" @click="goCancelZK" v-if="order.OrderStatus==1||order.OrderStatus==2" style="background-color: #fff;border: 1px solid #1d1d20;flex:1; border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#333">取消订单</view>
<view class="text-center cities-name" @click="submitGetCodeByOrderNo" v-if="order.OrderStatus==1" style="background-color: #1d1d20;flex:1;border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#EEF1F4;margin-left: 20rpx;">立即支付</view>
</view>
<view class="text-center cities-name" @click="requeryHandle" v-if="order.OrderStatus!=1" style="background-color: #1d1d20;border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#EEF1F4">再次预定</view>
......@@ -298,15 +299,19 @@
</view>
</u-popup>
<u-modal :border-radius="16" @confirm="cancleOrderHandle" title="订单取消提醒" content="你正在取消订单,是否确认执行" @cancel="cancelVisible=false" v-model="cancelVisible" confirm-text='确认取消' cancel-text='关闭' confirm-color='#DEBF7B' cancel-color='#080A09' :show-cancel-button="true"></u-modal>
<cancelPrompt :showModal="showModal" @cancel="cancelPrompt"></cancelPrompt>
<cancelPrompt v-if="showModal"
:showModal="showModal"
@cancel="cancelModal"
:orderNo="OrderNo"></cancelPrompt>
</view>
</template>
<script>
import Flight from './components/flight/Index.vue'
import cancelPrompt from '../AggregateOrders/components/cancelPrompt.vue'
import cancelPrompt from '@/components/cancelPrompt/cancelPrompt.vue'
import cancelProgress from '@/components/cancelPrompt/cancelProgress.vue'
export default {
components:{Flight,cancelPrompt},
components:{Flight,cancelPrompt,cancelProgress},
data() {
return {
timestamp: 86400,
......@@ -385,7 +390,7 @@
this.navigatorToHomeHandle()
},
methods: {
cancelPrompt(){
cancelModal(){
this.showModal = false
},
submitGetCodeByOrderNo() {
......@@ -552,6 +557,14 @@
},
goCancelZK() {
let that = this
if(this.order.OrderStatus==2){
return this.showModal = true
}
wx.showModal({
title: '提示',
content: '确定取消订单?',
success: (tip) => {
if (tip.confirm) {
uni.showLoading()
that.apipost(
"GetCancelOrder_post", {
......@@ -576,6 +589,10 @@
uni.hideLoading()
}
);
}
}
})
},
requeryHandle(){
......@@ -881,4 +898,7 @@
color: #999;
font-size: 24rpx;
}
/deep/.showModalInfo .u-drawer-bottom{
background-color: rgba(23,23,23,0) !important;
}
</style>
......@@ -328,9 +328,12 @@
.jz_MyGuestList {
margin-top: 40rpx;
}
/deep/.showModalInfo .u-drawer-bottom{
background-color: rgba(23,23,23,0) !important;
}
</style>
<template>
<view class="jz_Reserve" v-if="orderData">
<view class="jz_Reserve" v-if="orderData&&orderData.model">
<view class="jz_ReserTop">
<view class="flex" style="margin-bottom: 30rpx">
<u-icon customPrefix="iconfont" name="icondaizhifu-" size="52" color="#DFBE6E" v-if="orderStatus.code == 0"></u-icon>
......@@ -411,6 +414,7 @@
</view> -->
</view>
<view class="empty-block"></view>
<template v-if="orderData.model&&orderData.model.GuestList.length>0">
<view class="jz_form jz_MyGuestList" v-for="(subItem, subIndex) in orderData.model.GuestList" :key="subIndex">
<view style="margin: 10rpx 0 20rpx 0"> 游客{{ subIndex + 1 }} </view>
<view class="form-items">
......@@ -433,6 +437,7 @@
</view>
</view>
<view class="empty-block"></view>
</template>
<view class="jz_form" v-if="orderData.model.Remarks">
<view class="form-items" style="border-bottom: 0">
<view class="label">备注</view>
......@@ -440,6 +445,8 @@
</view>
</view>
<view class="empty-block"></view>
<cancelProgress :datas="orderData"></cancelProgress>
<view class="empty-block"></view>
<view style="padding: 50rpx 40rpx">
<view class="big-title">
<text>费用明细</text>
......@@ -553,13 +560,13 @@
<view class="jz_orderbox flex">
<view style="display: flex" v-if="showPayBtn">
<!-- #ifdef MP-DI -->
<button class="jz_OrderReNow" @click="goCancelZK"
<button v-if="orderData.OrderStatus==1||orderData.OrderStatus==2" class="jz_OrderReNow" @click="goCancelZK"
style="background: #fff; color: #111; border: 1px solid #111"
:disabled="submitCancel"
:loading="submitCancel">
取消
</button>
<button class="jz_OrderReNow"
<button v-if="orderData.OrderStatus==1" class="jz_OrderReNow"
style="margin-left: 20rpx;"
@click="submitGetCodeByOrderNo" :disabled="submit" :loading="submit">
立即支付
......@@ -580,7 +587,10 @@
</view>
</view>
<coupons v-if="showCoupons" :coupon-message="couponMessage" @goLook="()=>showCoupons=false" @closeBtn="()=>showCoupons=false"></coupons>
<cancelPrompt :showModal="showModal" @cancel="cancelPrompt"></cancelPrompt>
<cancelPrompt v-if="showModal"
:showModal="showModal"
@cancel="cancelModal"
:orderNo="orderData.OrderNo"></cancelPrompt>
</view>
</template>
......@@ -589,9 +599,10 @@
<script>
import coupons from "@/components/coupons/coupons.vue";
import cancelPrompt from '../AggregateOrders/components/cancelPrompt.vue'
import cancelPrompt from '@/components/cancelPrompt/cancelPrompt.vue'
import cancelProgress from '@/components/cancelPrompt/cancelProgress.vue'
export default {
components: {coupons,cancelPrompt},
components: {coupons,cancelPrompt,cancelProgress},
data() {
return {
pageTitle: "订单详情",
......@@ -601,7 +612,10 @@
MiniAppUserId: 0,
},
orderData: null,
orderStatus: {},
orderStatus: {
code: 0,
text: '',
},
submit: false,
submitCancel: false,
showPayBtn: true,
......@@ -632,7 +646,7 @@
}
},
methods: {
cancelPrompt(){
cancelModal(){
this.showModal = false
},
submitGetCodeByOrderNo() {
......@@ -700,6 +714,9 @@
if(res.resultCode==1){
this.OrderNo = res.data.OrderNo
this.orderId = res.data.ErpOrderId
this.orderData = {
...res.data
}
this.initOrderInfo();
this.formatStatus(
res.data.OrderStatus,
......@@ -800,12 +817,20 @@
}
},
goCancelZK() {
let that = this
if(this.orderData.OrderStatus==2){
return this.showModal = true
}
if (this.submit || this.submitCancel) return;
this.submitCancel = true;
if (this.orderData.model.OrderState == 2 ||this.orderData.model.OrderState == 3) {
wx.showModal({
title: '提示',
content: '确定取消订单?',
success: (tip) => {
if (tip.confirm) {
that.submitCancel = true;
this.apipost(
"GetCancelOrder_post", {
OrderNo: this.OrderNo
OrderNo: that.OrderNo
},
(res) => {
if (res.resultCode == 1) {
......@@ -817,17 +842,20 @@
url: "/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=2",
});
}
this.submitCancel = false
that.submitCancel = false
},
(err) => {
uni.showToast({
title: err.message,
icon: "none",
});
this.submitCancel = false
that.submitCancel = false
}
);
}
}
})
},
getWeek(date) {
var weekArray = new Array("日", "一", "二", "三", "四", "五", "六");
......@@ -850,24 +878,23 @@
msg,
(res) => {
if (res.resultCode == 1) {
this.orderData = {
...this.orderData,
...res.data
};
// #ifdef MP-AG
this.orderData = res.data
this.formatStatus(
this.orderData.model.OrderState,
this.orderData.model.IsChargeLossOrders,
this.orderData.model.IsApplyForCancel
res.data.model.OrderState,
res.data.model.IsChargeLossOrders,
res.data.model.IsApplyForCancel
);
// #endif
// #ifdef MP-DI
this.orderData = {
...res.data
};
if(!this.OrderNo){
this.getOrderInfoByIdAndType()
}
// #endif
}
console.log(res);
},
(e) => {
this.orderData = {
......@@ -920,7 +947,6 @@
this.orderStatus.text = "正常";
this.showPayBtn = false;
}
this.$forceUpdate();
// #endif
},
// #ifdef MP-WEIXIN
......
<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>
......@@ -3,41 +3,49 @@
<view class="titlenav" :style="{ paddingTop: nav }">{{ pageTitle }}</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png" mode="widthFix"></image>
<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 class="userHeadPicR_title">Ranjunjun</text>
<text class="userHeadPicR_text">销售:李龙飞等3位</text>
<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="userHeadPas column">
<view class="userHeadPasTop">
<view class="userHeadPasT_Num row-sbs-n">
<view class="column">
<text style="font-size: 40rpx;color: #C07D45;">60</text>
</view>
<view class="column">
<view class="userHeadPasMoney relative">
<view>¥</view>
<text style="font-size: 36rpx;">66248.2</text>
</view>
</view>
<view class="userHeadPasT_Num row-sb-n">
<view class="column">
<text style="color: #4F360D;font-size: 36rpx;">3</text>
</view>
<text>{{formatNumberWithUnit(1234)}}</text>
<text class="userHeadPasTTeT">
幸福存折
</text>
</view>
<view class="userHeadPasT_Text row-sbs-n">
<view class="column">
<text class="userHeadPasTTeT" style="font-size: 28rpx;font-weight: bold;">
幸福存折
<text>1852</text>
<text class="userHeadPasTTeT">
我的积分
</text>
</view>
<view class="column">
<text class="userHeadPasTTeT" style="font-size: 26rpx;font-weight: 100;">累计已省</text>
<text>
{{formatNumberWithUnit(99999)}}
</text>
<text class="userHeadPasTTeT">累计已省</text>
</view>
<view class="column">
<text class="userHeadPasTTeT" style="font-size: 26rpx;font-weight: 100;">抵扣券</text>
<text>3</text>
<text class="userHeadPasTTeT">优惠券</text>
</view>
</view>
</view>
......@@ -74,12 +82,12 @@
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props:['user_info','b2b_user_info'],
data() {
return {
pageTitle: "个人中心",
......@@ -111,7 +119,7 @@
},
{
text:'',
colorStyle: 'active',
colorStyle: '',
radiusL: '',
radiusR: '',
img:'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638732528736165089.png'
......@@ -119,7 +127,8 @@
],
};
},
components: {
components: {},
computed: {
},
created() {
......@@ -127,7 +136,6 @@
},
onLoad() {
this.nav = uni.getSystemInfoSync().statusBarHeight + "px";
},
mounted() {
......@@ -136,7 +144,37 @@
},
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];
}
if(formatted.substring(3,4)==',') return formatted.substring(0,3) + units[unitIndex + 1];
return formatted.substring(0,4) + units[unitIndex + 1];
},
login(name) {
if ((name && name.nickname == "") || !name || !name.nickname) {
this.$emit('login')
}
},
navigatorToProfile(){
// #ifdef MP-DI
uni.navigateTo({
url:'/pages/user-center/user-profile'
})
// #endif
},
},
};
</script>
......@@ -145,10 +183,11 @@
@import url("@/asset/css/flex.css");
.userHeaderBox{
width: 750rpx;
height: 622rpx;
// height: 622rpx;
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748787642081151.png')no-repeat;
background-size: 100% 100%;
padding-top: 118rpx;
margin-bottom: 40rpx;
}
.titlenav {
width: 100%;
......@@ -245,7 +284,7 @@
.jz_LineDetaVPBLine{
flex: 1;
height: 10rpx;
background: #2E2E2E;
background: #000;
}
.jz_LineDetaVPBBoxI{
position: relative;
......@@ -286,26 +325,21 @@
background-size: 100% 100%;
}
.userHeadPasTop{
padding: 41rpx 65rpx 50rpx 65rpx;
padding: 41rpx 40rpx 50rpx 40rpx;
}
.userHeadPasTop view{
text-align: center;
}
.userHeadPasTop view text{
font-family: HYYuanLongHei;
font-weight: normal;
.userHeadPasT_Num{
font-size: 34rpx;
color: #4F360D;
font-weight: bold;
}
.userHeadPasT_Text{
.userHeadPasTTeT{
font-weight: 500;
font-size: 28rpx;
color: #4F360D;
padding-top: 14rpx;
}
.userHeadPasMoney view{
font-size: 20rpx;
font-weight: bold;
position: absolute;
top: 15rpx;
left: -20rpx;
padding-top: 7rpx;
}
.userHeadPasButtom{
padding: 21rpx 0 40rpx 39rpx;
......@@ -329,4 +363,5 @@
height: 21rpx;
margin-left: 21rpx;
}
</style>
......@@ -3,60 +3,54 @@
<view class="titlenav" :style="{ paddingTop: nav }">{{ pageTitle }}</view>
<view class="userHeadPic row">
<view class="userHeadPicL">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748864186439447.png" mode="widthFix"></image>
<u-avatar :src="b2b_user_info.photo?b2b_user_info.photo:user_info.avatar" 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 class="userHeadPicR_title">Ranjunjun</text>
<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>
<view class="userHeadPicR_VIP">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735vip.png"/>
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735vip.png"/>
</view>
</view>
</view>
<view class="userHeadInfoBox">
<view class="userHeadInfo">
<view class="userHeadInfo_Name">王蕾钧</view>
<view class="userHeadInfo_text">销售:李龙飞等3位</view>
<img class="userHeadInfo_vip" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735zk.png" />
<view class="userHeadInfo_Name">{{ b2b_user_info.name }}</view>
<view class="userHeadInfo_text">销售:{{ b2b_user_info.salesBaseInfo.emName }}等3位</view>
<image class="userHeadInfo_vip" mode="aspectFit"
style="width: 385rpx;height: 49rpx;"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735zk.png" />
<view class="userHeadPasTop">
<view class="userHeadPasT_Num row-sbs-n">
<view class="row col">
<text class="userHeadPasTextb" style="font-size: 40rpx;color: #FF3166;">60</text>
</view>
<view class="userHeadPasT_Nl">
<view class="userHeadPasT_Lin"></view>
</view>
<view class="row col">
<view class="userHeadPasMoney">
<text class="userHeadPasMo">¥</text>
<text style="font-size: 36rpx;">
248.2
</text>
</view>
</view>
<view class="userHeadPasT_Nl">
<view class="userHeadPasT_Lin"></view>
</view>
<view class="row col">
<text class="userHeadPasTextb" style="color: #E2C27A;font-size: 36rpx;">3</text>
</view>
</view>
<view class="userHeadPasT_Text row-sbs-n">
<view class="row col">
<text class="userHeadPasTTeT" style="font-size: 28rpx;font-weight: bold;">
<view class="column">
<text>60k</text>
<text class="userHeadPasTTeT">
幸福存折
</text>
</view>
<view class="userHeadPasT_Nl">
<view class="userHeadPasT_Lin" style="opacity: 0;"></view>
</view>
<view class="row col">
<text class="userHeadPasTTeT" style="font-size: 26rpx;font-weight: 100;">累计已省</text>
<view class="column">
<text>1852</text>
<text class="userHeadPasTTeT">
我的积分
</text>
</view>
<view class="userHeadPasT_Nl">
<view class="userHeadPasT_Lin" style="opacity: 0;"></view>
<view class="column">
<text>248.2w</text>
<text class="userHeadPasTTeT">累计已省</text>
</view>
<view class="row col">
<text class="userHeadPasTTeT" style="font-size: 26rpx;font-weight: 100;">抵扣券</text>
<view class="column">
<text class="userHeadPasTextb">3</text>
<text class="userHeadPasTTeT">优惠券</text>
</view>
</view>
</view>
......@@ -68,6 +62,7 @@
<script>
export default {
props:['user_info','b2b_user_info'],
data() {
return {
pageTitle: "个人中心",
......@@ -107,9 +102,7 @@
],
};
},
components: {
},
components: {},
created() {
},
......@@ -124,8 +117,39 @@
},
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];
}
if(formatted.substring(3,4)==',') return formatted.substring(0,3) + units[unitIndex + 1];
return formatted.substring(0,4) + units[unitIndex + 1];
},
login(name) {
if ((name && name.nickname == "") || !name || !name.nickname) {
this.$emit('login')
}
},
navigatorToProfile(){
// #ifdef MP-DI
uni.navigateTo({
url:'/pages/user-center/user-profile'
})
// #endif
},
},
};
</script>
......@@ -170,7 +194,7 @@
.userHeadPicR_VIP{
padding-top: 3rpx;
}
.userHeadPicR_VIP img{
.userHeadPicR_VIP image{
width: 81rpx;
height: 26rpx;
display: block;
......@@ -202,56 +226,26 @@
padding-top: 16rpx;
}
.userHeadInfo_vip{
width: 385rpx;
height: 49rpx;
display: block;
padding-top: 29rpx;
}
.userHeadPasTop{
padding: 88rpx 0 50rpx 0;
padding: 120rpx 0 50rpx 0;
}
.userHeadPasTop view{
text-align: center;
}
.userHeadPasTop view text{
font-family: HYYuanLongHei;
font-weight: normal;
font-size: 34rpx;
font-weight: bold;
}
.userHeadPasT_Text{
text-align: center;
color: #E2C27A;
padding-top: 14rpx;
}
.userHeadPasMoney{
width: 100%;
text-align: center;
color: #E2C27A;
}
.userHeadPasMo{
font-size: 20rpx;
.userHeadPasT_Num{
font-size: 34rpx;
font-weight: bold;
margin-right: 5rpx;
}
.userHeadPasT_Nl{
position: relative;
}
.userHeadPasT_Nl text{
display: block;
}
.userHeadPasT_Lin{
position: absolute;
right: 0;
top: 3rpx;
width: 1rpx;
height: 39rpx;
background: #E2C27A;
opacity: 0.5;
color: #E2C27A;
}
.userHeadPasTextb,.userHeadPasTTeT{
width: 100%;
display: block;
text-align: center;
.userHeadPasTTeT{
font-size: 28rpx;
color: #987C3D;
font-weight: 100;
padding-top: 7rpx;
}
</style>
<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">
<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="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>
<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">
<view class="userHeadPListL">
<image mode="scaleToFill" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774847991690497.png"/>
<text>共4件</text>
</view>
<view class="userHeadPListA col column">
<view class="userHeadPListATitel">幸福存折返佣</view>
<view class="userHeadPListATime">2025-02-08 15:27</view>
</view>
<view class="userHeadPListR">
+¥30
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import happasHeader from "./components/happasHeader.vue";
export default {
components: {
happasHeader,
},
data() {
return {
pageTitle: "幸福存折",
scrollTop: 0,
showAuth: false,
b2b_user_info: {},
mall_UserInfo: {},
u: {},
user_info: {},
shopBasics: {},
PointNum: 0,
};
},
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() {
this.userCenterinfo(2);
},
methods: {
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}`
uni.navigateTo({
url: path,
});
}
},
openAuth() {
this.showAuth = true;
},
//关闭登录窗口
gbAuth() {
this.showAuth = false;
},
scrollHandler(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();
}
},
getMicroShopBasics() {
this.request2({
url: "/api/AppletUser/GetMicroShopBasics",
data: {},
},
(res) => {
this.shopBasics = res.data;
}
)
},
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
},
},
(res) => {
this.PointNum = res.data.pageData.PointNum;
}
);
},
}
};
</script>
<style>
@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: #f3f4f6;
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-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;
}
</style>
\ No newline at end of file
This diff is collapsed.
......@@ -328,6 +328,9 @@
.jz_MyGuestList {
margin-top: 40rpx;
}
/deep/.showModalInfo .u-drawer-bottom{
background-color: rgba(23,23,23,0) !important;
}
</style>
<template>
<view class="jz_Reserve" v-if="orderData">
......@@ -388,7 +391,7 @@
</view>
</view>
<view class="jz_form">
<view class="jz_form" v-if="orderData && orderData.OrderModel">
<view class="form-items">
<view class="label">订单编号</view>
<view class="jz_SureVal">
......@@ -445,7 +448,7 @@
</view>
</view>
</view>
<view class="empty-block"></view>
<view class="empty-block" v-if="orderData.OrderModel&&orderData.OrderModel.GuestList&&orderData.OrderModel.GuestList.length>0"></view>
<view class="jz_form" v-if="orderData.OrderModel.Remark">
<view class="form-items" style="border-bottom: 0">
<view class="label">备注</view>
......@@ -453,7 +456,9 @@
</view>
</view>
<view class="empty-block"></view>
<view style="padding: 50rpx 40rpx">
<cancelProgress :datas="orderData"></cancelProgress>
<view class="empty-block"></view>
<view style="padding: 50rpx 40rpx" v-if="orderData.OrderModel">
<view class="big-title">
<text>费用明细</text>
</view>
......@@ -522,13 +527,13 @@
<view class="jz_orderbox flex" v-if="showPayBtn">
<view style="display: flex">
<!-- #ifdef MP-DI -->
<button class="jz_OrderReNow" @click="goCancelZK"
<button v-if="orderData.OrderStatus==1||orderData.OrderStatus==2" class="jz_OrderReNow" @click="goCancelZK"
style="background: #fff; color: #111; border: 1px solid #111"
:disabled="submitCancel"
:loading="submitCancel">
取消
</button>
<button class="jz_OrderReNow"
<button v-if="orderData.OrderStatus==1" class="jz_OrderReNow"
style="margin-left: 20rpx;"
@click="submitGetCodeByOrderNo" :disabled="submit" :loading="submit">
立即支付
......@@ -569,7 +574,9 @@
<!-- #ifdef MP-ALIPAY -->
<subscribe-msg />
<!-- #endif -->
<cancelPrompt :showModal="showModal" @cancel="cancelPrompt"></cancelPrompt>
<cancelPrompt v-if="showModal"
:showModal="showModal"
@cancel="cancelModal" :orderNo="orderData.OrderNo"></cancelPrompt>
</view>
</template>
......@@ -577,9 +584,10 @@
</script>
<script>
import cancelPrompt from '../AggregateOrders/components/cancelPrompt.vue'
import cancelPrompt from '@/components/cancelPrompt/cancelPrompt.vue'
import cancelProgress from '@/components/cancelPrompt/cancelProgress.vue'
export default {
components: {cancelPrompt},
components: {cancelPrompt,cancelProgress},
data() {
return {
pageTitle: "订单详情",
......@@ -589,7 +597,10 @@
MiniAppUserId: 0,
},
orderData: null,
orderStatus: {},
orderStatus: {
code: 0,
text: "",
},
submit: false,
submitCancel: false,
showPayBtn: true,
......@@ -605,9 +616,7 @@
onLoad(option) {
if (option.orderData) {
this.orderData = JSON.parse(decodeURIComponent(option.orderData));
} else if (option.orderId&&!option.OrderTypeStr) {
this.initOrderInfo(option.orderId);
} else if(option.OrderNo||(option.orderId&&option.OrderTypeStr)){
}else if(option.OrderNo||(option.orderId&&option.OrderTypeStr)){
if(option.OrderTypeStr){
this.OrderTypeStr = option.OrderTypeStr
}
......@@ -618,10 +627,13 @@
this.OrderNo = option.OrderNo
}
this.getOrderInfoHandler()
} else if (option.orderId) {
this.orderId = option.orderId
this.initOrderInfo(option.orderId);
}
},
methods: {
cancelPrompt(){
cancelModal(){
this.showModal = false
},
submitGetCodeByOrderNo() {
......@@ -753,13 +765,20 @@
}
},
goCancelZK() {
let that = this
if (this.orderData.OrderStatus==2) {
return this.showModal = true
};
if (this.submit || this.submitCancel) return;
this.submitCancel = true;
if (this.orderData.OrderStatus == 1) {
this.apipost(
wx.showModal({
title: '提示',
content: '确定取消订单?',
success: (tip) => {
if (tip.confirm) {
that.submitCancel = true;
that.apipost(
"GetCancelOrder_post", {
OrderNo: this.OrderNo
OrderNo: that.OrderNo
},
(res) => {
if (res.resultCode == 1) {
......@@ -771,17 +790,20 @@
url: "/pages/visa/visa_MyOrder",
});
}
this.submitCancel = false
that.submitCancel = false
},
(err) => {
uni.showToast({
title: err.message,
icon: "none",
});
this.submitCancel = false
that.submitCancel = false
}
);
}
}
})
},
getWeek(date) {
var weekArray = new Array("日", "一", "二", "三", "四", "五", "六");
......@@ -814,20 +836,20 @@
}
// #ifdef MP-AG
this.formatStatus(
this.orderData.OrderModel.VisaOrderStatus,
this.orderData.OrderModel.Income,
this.orderData.OrderModel.TotalPrice,
this.orderData.OrderModel.PlatformTax
res.data.OrderModel.VisaOrderStatus,
res.data.OrderModel.Income,
res.data.OrderModel.TotalPrice,
res.data.OrderModel.PlatformTax
);
// #endif
} else {
}
},
(e) => {
this.orderData = {
result: -1,
};
}
},
(e) => {}
);
},
formatStatus(status,Income,TotalPrice,PlatformTax) {
......
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