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.
 
 
 
 

406 lines
8.8 KiB

<template>
<view style="height: 100vh;display: flex;flex-direction: column; ">
<view class="header">
<view :style="{height:styles.top+'px'}" class="top"></view>
<uni-nav-bar @clickLeft='back' color='white' backgroundColor="rgba(0,0,0,0)" left-icon="back"
title="企业充值" />
<view class="header_seach">
<view class="header_seach_seach">
<!-- <uni-easyinput @focus="inputFocus" @clear="inputClear"
style="height: 100%; flex: 1; background-color: #FFFFFF; border-radius:12rpx ;"
placeholder-style="color:#bbbbbb;font-weight: 100;" :value="parameter.params.name"
placeholder="企业名称">
</uni-easyinput> -->
<!-- <input @focus="inputFocus"
style="height: 100%; flex: 1; background-color: #FFFFFF; border-radius:12rpx ;"
placeholder-style="color:#bbbbbb;font-weight: 100;" :value="parameter.params.name"
placeholder="企业名称">
</input> -->
<view @click="inputFocus" class="special-input" >
{{ parameter.params.name || '企业名称'}}
<image v-if="parameter.params.name" class="close" src="../../../static/close.png" @click.stop="inputClear"></image>
</view>
<button @tap='search' class="header_seach_butten">
<uni-icons type="search" size="20" color="#bbbbbb"></uni-icons>
<view>搜索</view>
</button>
</view>
<view class="date-chunk">
<text>日期:</text>
<text style="margin-left: 10rpx;" @click="controlWindows.datePopup=true">
{{ parameter.params.createTimeStart.split(' ')[0] || '开始时间' }} ~ {{ parameter.params.createTimeEnd.split(' ')[0] || '结束时间' }}
</text>
</view>
</view>
</view>
<view style="flex: 1;overflow: hidden;">
<scroll-view style="height: 100%;" scroll-y="true" @scrolltolower="scrolltolower">
<view v-for="(item,index) in listData" :key="index">
<view class="item">
<view class="type">{{typeEnum[item.transactionType]}}</view>
<view class="top-region">
<image src="../../../static/selegs.png"
style="width: 100rpx; height: 100rpx;border-radius: 50%;"></image>
<view class="">{{item.companyName}}</view>
<view class="transfer">
<text class="pay"></text>
<text>{{item.offlinePaymentCompany || '暂无'}}</text>
</view>
<view class="transfer">
<text class="collect"></text>
<text>{{item.internalCompanyName || '暂无'}}</text>
</view>
<view class="status"
:class="statusEnum.find(_item => _item.value == item.transactionState).class">
{{statusEnum.find(_item => _item.value == item.transactionState).label}}
</view>
</view>
<view class="bottom-region">
<text>{{item.createTime}}</text>
<text>{{item.transactionAmount}}</text>
</view>
</view>
</view>
</scroll-view>
</view>
<datePopup @datePopupChange='datePopupChange' v-model="controlWindows.datePopup" />
</view>
</template>
<script>
import datePopup from '@/components/datePopup.vue'
import serve from '@/api/financialCenter/business.js'
export default {
components: {
datePopup
},
data() {
return {
controlWindows: {
datePopup: false
},
parameter: {
pageSize: 15,
currentPage: 1,
params: {
name: '',
companyId: '',
createTimeStart: '',
createTimeEnd: '',
businessLeader: ''
},
sorted: {}
},
styles: {},
listData: [],
userInfo: uni.getStorageSync('user'),
statusEnum: [{
value: '0',
label: '已申请',
class: 'orange'
},
{
value: '1',
label: '已成功',
class: 'green'
},
{
value: '-1',
label: '已撤销',
class: 'gray'
}
],
typeEnum: {
'RECHARGE': '充值',
'REVOKE': '销账',
'CHARGE_SALES': '赊销',
'CONSUME_REBATE': '消费返利',
'TURN': '圈回',
}
}
},
onPullDownRefresh() {
console.log('下拉的生命周期')
},
onLoad() {
this.styles = uni.getMenuButtonBoundingClientRect()
uni.$on('currentEnterprise', (item) => {
if (!item.id) return
this.parameter.currentPage = 1
this.parameter.params.companyId = item.id
this.parameter.params.name = item.name
})
this.search();
},
methods: {
back() {
uni.navigateBack()
},
inputFocus(e) {
console.log('e', e)
uni.navigateTo({
url: './selEnterprise'
})
},
inputClear() {
this.parameter.params.companyId = ''
this.parameter.params.name = ''
},
datePopupChange(time) {
this.parameter.currentPage = 1
this.parameter.params.createTimeStart = time[0]
this.parameter.params.createTimeEnd = time[1]
},
search() {
this.parameter.params.businessLeader = this.userInfo.id
serve.getByPageRecharge(this.parameter).then(res => {
if (res.code !== 20000) return
if (this.parameter.currentPage == 1) {
if(!res.data.list.length) {
uni.showToast({
title: '暂无数据~',
icon:'none'
})
}
this.listData = res.data.list
return
}
if (!res.data.list.length) {
uni.showToast({
title: '没有更多数据了~',
icon:'none'
})
return
}
this.listData = this.listData.concat(res.data.list);
})
},
scrolltolower() {
this.parameter.currentPage += 1
this.search()
},
handlerDate(date) {
if (date instanceof String || date instanceof Number) {
date = new Date(parseInt(date))
}
if (!(date instanceof Date)) return {}
return {
y: date.getFullYear(),
M: (date.getMonth() + 1 + '').padStart(2, '0'),
d: (date.getDate() + '').padStart(2, '0'),
}
},
}
}
</script>
<style lang="scss">
page {
background-color: #F0F2FF;
}
.date-chunk {
margin-top: 19rpx;
padding: 0 40rpx;
height: 75rpx;
width: 555rpx;
line-height: 75rpx;
font-size: 27rpx;
background: #ADCEFF;
border-radius: 6px;
}
.special-input {
position: relative;
height: 100%;
flex: 1;
background-color: #FFF;
border-radius: 12rpx;
color: #333;
line-height: 80rpx;
padding-left: 20rpx;
.close {
position: absolute;
top: 50%;
right: 20rpx;
transform: translateY(-50%);
width: 36rpx;
height: 36rpx;
}
}
.item {
position: relative;
overflow: hidden;
margin: 40rpx auto 0;
padding: 20rpx 20rpx 15rpx 20rpx;
width: 700rpx;
font-size: 28rpx;
background: #fff;
border-radius: 12rpx;
box-shadow: 0px 3px 9px 0px rgba(88, 88, 88, 0.2);
.type {
position: absolute;
left: -24px;
width: 175rpx;
text-align: center;
height: 40rpx;
transform: rotate(-45deg);
font-size: 22rpx;
line-height: 40rpx;
z-index: 20;
color: #fff;
background: #1890FF;
}
.top-region {
position: relative;
padding-left: 135rpx;
min-height: 150rpx;
image {
position: absolute;
left: 5rpx;
top: 50%;
transform: translateY(-50%);
width: 100rpx;
height: 100rpx;
// border: 1px solid #333;
}
.transfer {
margin-top: 10rpx;
text {
font-size: 25rpx;
&:nth-of-type(1) {
vertical-align: top;
display: inline-block;
width: 40rpx;
height: 40rpx;
text-align: center;
line-height: 40rpx;
&.pay {
color: #1890ff;
background: #e8f4ff;
border: 1px solid #d1e9ff;
}
&.collect {
color: #13ce66;
background: #e7faf0;
border: 1px solid #d0f5e0;
}
}
&:nth-of-type(2) {
display: inline-block;
margin-left: 15rpx;
width: 450rpx;
}
}
}
.status {
position: absolute;
top: 0;
right: 0;
font-size: 25rpx;
&.green {
color: #13ce66;
}
&.orange {
color: #ffba00;
}
&.gray {
color: #909399;
}
}
}
.bottom-region {
font-size: 22rpx;
text {
&:nth-of-type(1) {
color: #bbb;
}
&:nth-of-type(2) {
float: right;
font-size: 25rpx;
color: #1890FF;
}
}
}
}
.header_seach_butten {
font-size: 24rpx !important;
display: flex !important;
align-items: center !important;
margin: 0 !important;
flex-shrink: 1;
margin-left: 9rpx !important;
background: #FFFFFF !important;
justify-content: center;
}
.uni-easyinput__content {
height: 80rpx;
}
.uni-easyinput {
height: 80rpx;
}
.header_seach_seach {
display: flex;
height: 80rpx;
margin-top: 23rpx;
}
.header_seach {
font-size: 26rpx;
padding: 0 10px;
}
.uni-navbar--border {
border: 0px !important;
}
.header {
position: relative;
color: white;
min-height: 403rpx;
background: url('https://xoi-support.oss-cn-hangzhou.aliyuncs.com/星油admin小程序/sjbj.png') 100%/100%;
}
.uni-navbar__header-btns-right {
padding-right: 0 !important;
width: 120rpx !important;
}
.top {
height: var(--status-bar-height);
}
</style>