推拿小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

203 lines
4.2 KiB

<template>
<view class="page">
<navbar title="核销明细" leftClick @leftClick="$utils.navigateBack" color="#fff" />
<view class="tabs">
<uv-tabs
:list="tabs"
@click="onTabChange"
:customStyle="{
backgroundColor: '#FFFFFF',
}"
:activeStyle="{
color: '#84A73F',
fontSize: '28rpx',
whiteSpace: 'nowrap',
paddingTop: '29rpx',
paddingBottom: '21rpx',
}"
:inactiveStyle="{
color: '#000000',
fontSize: '28rpx',
whiteSpace: 'nowrap',
paddingTop: '29rpx',
paddingBottom: '21rpx',
}"
lineHeight="5rpx"
lineWidth="92rpx"
lineColor="linear-gradient(to right, #84A73F, #D8FF8F)"
:scrollable="false"
></uv-tabs>
</view>
<view class="flex bar">
<view class="left">
<uv-datetime-picker
ref="datetimePicker"
v-model="selectedTime"
mode="year-month"
confirmColor="#84A73F"
@confirm="onTimeChange"
></uv-datetime-picker>
<button plain class="flex btn" @click="openTimePicker">
<text>{{ displaySelectedTime }}</text>
<image class="btn-icon" src="../static/runningWater/icon-arrow.png" mode="widthFix"></image>
</button>
</view>
<view class="right">
<text>{{ `${displaySelectedMonth}总核销:` }}</text>
<!-- todo: 对接接口字段 -->
<text class="highlight">{{ 12 }}</text>
</view>
</view>
<template v-if="current == 0" >
<view class="list order">
<orderCard class="list-item"
v-for="item in list"
:key="item.id"
:data="data"
></orderCard>
</view>
</template>
<template v-else-if="current == 1" >
<view class="list voucher">
<voucherCard class="list-item"
v-for="item in list"
:key="item.id"
:data="data"
></voucherCard>
<!-- todo: delete -->
<voucherCard class="list-item"></voucherCard>
<voucherCard class="list-item"></voucherCard>
</view>
</template>
</view>
</template>
<script>
import mixinsList from '@/mixins/list.js'
import orderCard from '@/components/order/orderCard.vue'
import voucherCard from '../components/verifyRecord/voucherCard.vue'
const TAB_AND_API_FIELDS_MAPPING = {
// todo: 接口对接
0: 'fetchVoucher',
1: 'fetchStore',
}
export default {
mixins : [mixinsList],
components: {
orderCard,
voucherCard,
},
data() {
return {
tabs: [{
name: "核销商品"
}, {
name: "核销代金券"
}],
current: 0,
selectedTime: new Date(),
};
},
computed: {
mixinsListApi() {
// todo
return TAB_AND_API_FIELDS_MAPPING[this.current]
},
displaySelectedTime() {
return this.$dayjs(this.selectedTime).format("YYYY年M月")
},
displaySelectedMonth() {
return this.$dayjs(this.selectedTime).format("M月")
},
},
methods: {
onTabChange(e) {
this.current = e.index
},
openTimePicker() {
this.$refs.datetimePicker.open();
},
onTimeChange(e) {
// todo
console.log('--onTimeChange', e)
},
},
}
</script>
<style scoped lang="scss">
.page {
background-color: $uni-bg-color;
min-height: 100vh;
/deep/ .nav-bar__view {
background-image: linear-gradient(#84A73F, #D8FF8F);
}
}
.tabs {
/deep/ .uv-tabs__wrapper__nav__line {
bottom: 0;
}
}
.bar {
padding: 0 58rpx 0 25rpx;
margin-top: 32rpx;
justify-content: space-between;
.left {
.btn {
border: none;
color: #000000;
font-size: 28rpx;
line-height: 40rpx;
&-icon {
width: 28rpx;
height: auto;
margin-left: 12rpx;
}
}
}
.right {
color: #333333;
font-size: 28rpx;
.highlight {
margin-left: 10rpx;
color: $uni-color-light;
}
}
}
.list {
margin-top: 26rpx;
&-item {
display: block;
& + & {
margin-top: 20rpx;
}
}
&.order {
padding: 0 17rpx;
}
&.voucher {
padding: 0 13rpx;
}
}
</style>