oil-station/gasStation-uni/pagesMy/CardManagement/CardManagement.vue
2024-08-16 18:26:19 +08:00

418 lines
9.2 KiB
Vue

<template>
<view class="content">
<view class="container">
<view class="my-header">
<view class="my-icons" @click="goback"> <uni-icons type="left" size="16"></uni-icons> </view>
<view class="my-text">子卡管理</view>
<view class="my-icons"></view>
</view>
<!-- 顶部区域 -->
<view class="tap-top">
<view class="tap-box" :class="{ 'act' : tindex == index }" v-for="(item,index) in tapList" :key="index"
@click="tapindex(index)">
<view class="">{{ item.text }}</view>
<view class="gang" :class="{ 'lan' : tindex == index }"></view>
</view>
</view>
<!-- <view class="hong-card">
<view class="top-hang">
<view class="hgang"></view>
<view class="">加油站名称</view>
</view>
<view class="title-box">储值卡</view>
<view class="red-bottom">
<view class="x-size">
<view class="">卡券卡密</view>
<view class="">**** **** **** 970</view>
</view>
<view class="r-anniu">
<span>去完成</span>
</view>
</view>
</view> -->
<view v-if="tindex==0">
<view class="hong-card" v-for="item in list" :key="item.id" @click="toCheck(item.cardChildPhones)">
<view class="top-hang">
<view class="hgang"></view>
<view class="">{{store.name}}{{store.description ? "("+store.description+")" : ""}}</view>
</view>
<view class="title-box">储值卡</view>
<view class="red-bottom">
<view class="x-size">
<view class="">子卡手机号</view>
<view class="">{{item.cardChildPhones}}</view>
</view>
<view class="r-anniu">
<span>查看订单</span>
</view>
</view>
</view>
<view class="x_anniu" @click="goDetail()">
<uni-icons type="plusempty" color="#fff" size="30"></uni-icons>
</view>
<u-empty v-if="list.length == 0" mode="coupon" text="内容为空"
icon="http://cdn.uviewui.com/uview/empty/coupon.png">
</u-empty>
</view>
<view v-if="tindex==1">
<scroll-view scroll-y="true" :scroll-top="scrollTop" id="scrollList" style="height: 78vh;"
@scrolltolower="scrolltolower">
<!-- 油品订单列表 -->
<view class="box-order" v-for="(item,index) in orderList" :key="index">
<view class="or-box-top">
<view class="">{{store.name}}</view>
<!-- <view class="chengg">{{getPayName(payList,item.orderStatus)}}</view> -->
<view class="chengg" v-if="item.status=='paid'">已支付</view>
<view class="chengg" v-else-if="item.status=='payFail'">支付失败</view>
<view class="chengg" v-else>未支付</view>
</view>
<!-- <view class="but-box">
<view class="huis">订单类型</view>
<view class="">油品订单</view>
</view> -->
<view class="but-box">
<view class="huis">订单金额</view>
<view class="">{{item.amount}}</view>
</view>
<view class="but-box">
<view class="huis">支付金额</view>
<view class="reds">{{item.payAmount}}</view>
</view>
<view class="but-box">
<view class="huis">订单时间</view>
<view class="" v-if="item.orderStatus=='paid'">{{item.payTime}}</view>
<view class="" v-else>{{item.createTime}}</view>
</view>
<view class="but-box">
<view class="huis">订单备注</view>
<view class="">{{item.remark}}</view>
</view>
<!-- <view v-if="item.orderStatus=='paid'" class="end-box" @click="goComment()">
<view class="anniu">
<text>评价有礼</text>
</view>
</view>
<view v-else-if="item.orderStatus=='unpaid'" class="end-box" @click="goPayment()">
<view class="anniu">
<text>去支付</text>
</view>
</view> -->
</view>
<u-empty v-if="orderList.length == 0" mode="coupon" text="内容为空"
icon="http://cdn.uviewui.com/uview/empty/coupon.png">
</u-empty>
</scroll-view>
</view>
</view>
</view>
</template>
<script>
import request from '../../utils/request'
export default {
data() {
return {
title: '',
tindex: 0,
tapList: [{
text: "子卡管理"
},
{
text: "交易统计"
},
],
list: [],
storeId: uni.getStorageSync("storeId"),
// 店铺信息
store:{},
scrollTop: 0,
orderList:[],
map:{
page:1,
pageSize:10,
storeId: uni.getStorageSync("storeId"),
cardChildPhones:'',
},
total:0,
}
},
onShow() {
this.getCardValueChildren()
this.getStore()
},
components: {
},
methods: {
// 查询当前子卡手机号消费信息
toCheck(mobile){
this.map.cardChildPhones = mobile;
this.map.page = 1;
this.getMyOrder()
this.tindex = 1;
},
parseTime(dateTime) {
let date = new Date(dateTime);
let y = date.getFullYear() + "-";
let mon = ((date.getMonth() + 1 < 10) ? ('0' + date.getMonth()) : date.getMonth()) + "-";
let d = ((date.getDate() < 10) ? ('0' + date.getDate()) : date.getDate()) + " ";
let h = ((date.getHours() < 10) ? ('0' + date.getHours()) : date.getHours()) + ":";
let m = ((date.getMinutes() < 10) ? ('0' + date.getMinutes()) : date.getMinutes()) + ":";
let s = ((date.getSeconds() < 10) ? ('0' + date.getSeconds()) : date.getSeconds());
return y + mon + d + h + m + s;
},
// 滚动区域
scrolltolower() {
if (this.orderList.length < this.total) {
this.map.page++;
this.getMyOrder()
}
},
getMyOrder(){
request({
url: "business/order/cardValueChildOrder/list",
method: 'get',
params:this.map,
}).then((res) => {
if (res.code == 200) {
if (this.map.page == 1) {
this.orderList = res.data.records
} else {
this.orderList = _this.orderList.concat(res.data.records)
}
this.total = res.data.total
}
})
},
// 获取当前店铺信息
getStore(){
request({
url: "business/storeInformation/store/"+this.storeId,
method: 'get',
}).then((res) => {
// console.log(res)
this.store = res.data
})
},
// 获取子卡信息
getCardValueChildren(){
request({
url: "cardValudChildrens/list/"+this.storeId,
method: 'get',
}).then((res) => {
// console.log(res)
this.list = res.data
})
},
tapindex(index) {
this.tindex = index
console.log(index);
if (index==0){
this.getCardValueChildren()
}
if (index==1){
this.getMyOrder()
}
},
goDetail() {
uni.navigateTo({
url: '/pagesMy/CardManagement/Detail'
})
},
goback() {
uni.navigateBack()
}
}
}
</script>
<style scoped lang="scss">
.content {
background: #f4f5f6;
}
.container {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 88px;
}
.my-header {
width: 100%;
height: 88px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
.my-icons {
width: 20px;
}
position: fixed;
top: 0px;
}
.tap-top {
width: 100%;
height: 50px;
background-color: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
}
.tap-box {
width: 50%;
text-align: center;
color: #666666;
}
.gang {
width: 35px;
height: 4px;
// background: #0000ff;
margin: 0 auto;
margin-top: 10px;
}
.act {
font-weight: bold;
color: #000;
}
.lan {
background: #0000ff;
}
.hong-card {
width: 95%;
margin: 10px auto;
height: 114px;
background: linear-gradient(90deg, #EC703B 0%, #EA392A 100%);
border-radius: 8px 8px 8px 8px;
box-sizing: border-box;
padding: 10px;
}
.top-hang {
display: flex;
align-items: center;
width: 100%;
box-sizing: border-box;
padding-bottom: 5px;
border-bottom: 1px dashed #ffffff;
color: #ffffff;
}
.hgang {
width: 3px;
height: 12px;
background: #F8A82F;
border-radius: 2px;
margin-right: 5px;
}
.title-box {
font-size: 18px;
font-weight: bold;
color: #ffffff;
margin: 5px 0px;
}
.red-bottom {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.x-size {
font-size: 12px;
font-weight: 400;
color: rgba(255, 255, 255, 0.6);
}
.r-anniu {
display: flex;
align-items: center;
justify-content: center;
color: #ffffff;
width: 74px;
height: 30px;
background: #F8A82F;
font-size: 14px;
border-radius: 50px;
}
.x_anniu {
position: fixed;
bottom: 50px;
right: 30px;
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: #0000ff;
}
.box-order {
width: 95%;
border-radius: 8px;
background: #ffffff;
box-sizing: border-box;
padding: 10px;
margin: 10px auto;
}
.or-box-top {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 5px 0px;
border-bottom: 1px solid #e5e5e5;
}
.chengg {
color: #1678ff;
}
.but-box {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
margin: 5px 0px;
}
.reds {
color: red;
}
.huis {
color: #666666;
}
.end-box {
width: 100%;
display: flex;
align-items: center;
justify-content: flex-end;
}
</style>