Files
wx_oms/financialCenter/enterprise/recharge/index.vue
xiaozhiyong c2412056fd 更新
2023-11-14 14:57:49 +08:00

407 lines
8.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>